1.通用概念
1.1.基本特征
- 并发:宏观上一段时间同时运行多个程序,并行则是指同一时刻运行多个指令,操作系统中引入进程和线程来实现并发。
- 共享:系统中资源可以被多个并发进程共同使用。互斥共享同一时刻只能让一个进程访问,同时共享则是可多个进程访问。
- 虚拟:把物理实体转换为多个逻辑实体。进程上采用时分复用技术,让每个进程轮流占用处理器,虚拟内存使用了空分复用技术,执行页面置换算法,让逻辑上可以容纳比内存更大的页。
- 异步:进程不是一次性执行完毕,而是走走停停,以不可知速度前进。
1.2.系统调用
如果一个进程在用户态需要使用内核态度功能,就进行系统调用从而陷入内核,由操作系统代为。
Linux的系统调用主要有以下这些功能
- 进程控制 fork;exit;wait
- 进程通信 pipe;shmget;mmap
- 文件操作 open;read;write
- 设备操作 ioctl;read;write
- 信息维护 getpid;alarm;sleep
- 安全 chmod;unmask;chown
1.3.宏内核和微内核
- 宏内核 将操作系统作为一个紧密结合的整体放到内核,各模块共享信息,性能高
- 微内核 将部分操作系统功能移出内核,划分成相互独立的服务,只有微内核在内核态,其余在用户态。内核复杂性低,性能有一定损失。
1.4.中断分类
- 外中断 由CPU执行指令之外的事件引起,如I/O完成中断,时钟中断、控制台中断等。
- 异常 由CPU执行指令的内部事件引起,如非法操作码、地址越界等
- 陷入 在用户程序中使用系统调用
2.进程管理
2.1.进程控制
进程控制块描述进程的基本信息和运行状态,所谓创建进程和撤销进程,都是对PCB的操作。
2.2.进程线程比较
进程 | 线程 | |
---|---|---|
拥有资源 | 资源分配基本单位 | 不拥有资源,可以访问进程资源 |
调度 | 进程切换引起线程切换 | 调度基本单位,线程切换不会引起进程切换 |
系统开销 | 需要分配/回收资源,开销较大,需要刷新TLB并获取新的地址空间 | 只需要保存和设置少量寄存器内容,开销很小 |
通信 |