概述
电脑硬件系统的三个部分:
- 处理器(CPU)
- 主内存
- I/O 处理器
操作系统: 是管理电脑硬件的程序
为应用程序提供基础
是用户与硬件间的桥梁
操作系统的主要作用:
- 保护硬件不被应用程序误用
- 应用程序通过简单且统一的方法操作硬件
分工:
applications 不能直接访问I/O设施
通过操作系统提供的services(比如syscall)
操作系统对计算机系统的抽象
进程
程序运行时,操作系统会让它以为自己是系统上唯一运行的程序
- 该程序似乎能完全使用所有的处理器、内存、I/O设施
- 程序似乎是不中断运行
- memory中似乎只用该程序的代码以及数据
一个进程分为两个部分:
- user part
- OS part, 又称kernel(内核),被所有进程共用
一个进程会在User Mode 与 Kernel Mode 间切换.
- 在kernel mode:
执行任何指令
访问任意内存
- 在user mode:
不能执行特权指令
不能访问kernel的数据
只能间接通过system call界面交互
两种模式的切换通过特定寄存器中存储的值来实现
虚拟内存
每个进程似乎都占用了整个内存空间
虚拟内存的空间包括:
- 代码和数据(全局变量)
- 堆区
- 栈区
- 共用库
- 内核
硬件支持了从虚拟地址到物理地址的翻译
每个进程的地址空间是相互私有且独立的
文件
I/O device被看作是文件
以Unix为例,程序使用一系列system calls来读写文件.系统所有的输入输出都通过Unix I/O实现
总结
简要介绍了什么是操作系统。
下一章会说明操作系统的异常处理机制。
更多文章:
数据在内存中的对齐问题
计算机编译程序的原理
函数调用的汇编原理
汇编语句详解(持续更新)
关于位运算必须记住的事
C语言中的类型转换