计算机操作系统
一、概述📌
- 内核:确定的可执行程序,属于软件(
- 设备处理,中断处理程序在固件中,如ROM,BIOS
- 部分在硬件中(逻辑地址到物理地址
- 硬件和应用程序中间的软件层
- 资源管理者
二、发展📌
1.真空管,插接板,无操作系统
2.晶体管,批处理
- 汇编语言开发
- 单道性,自动性,顺序性
3.集成电路
-
多道批处理,分时操作系统,实时操作系统
-
Success
现代化操作系统同时有批处理,分时,实时功能(通用操作系统)
4.网络式操作系统,分布式操作系统
三、操作系统结构📌
1、整体式结构
2、模块化结构
3、分层式结构
4、微内核结构
四、功能和基本特征📌
1、功能📌
- 处理机管理
- 储存器管理
- 分页
- 分区
- 分段
- 虚拟存储
- IO管理
- 文件管理
- 连续存储
- 索引存储
- 链表存储
2、特征📌
Tip
- 并发性:两道或多道在同一 时间间隔
- 共享性:互斥共享,同时访问
- 虚拟性
- 异步性 (不确定性) :不知道时间 不知道顺序
五、基本概念📌
概念 | 解释 |
---|---|
中断 | 可以处理算法溢出,非法操作码,死循环 |
用户态 | 非特权态 |
核心态 | 系统态,特权态 |
多道程序系统 | 多个程序在内存中交替运行(宏观上并行,微观上串行 |
多处理系统 | 多个处理器 |
分时 | 把计算机时间分割为时间片,(使多道操作系统支持多个虚拟机 |
六、操作系统管理与控制📌
1、进程与线程📌
-
进程:程序在并发系统内的某个数据集上的一次运行,是系统进行资源分配和调度运行的独立单位
-
Example
- 新批处理任务
- 系统初始化,用户登录
- 操作系统提供系统服务
- 现存进程
-
状态:
stateDiagram New --> Ready: Admitted Ready --> Running: Despatch Running --> Ready: Interrupt Running --> Waiting: I/O wait Waiting --> Ready: I/O completion Running --> Terminated: Exit
-
-
线程:轻型实体,独立调配单元 ,(一个/不同进程里的所有线程可并发进行)
进程(Process) | 线程(Thread) | |
---|---|---|
定义 | 运行中的程序的实例 | 进程中的一个执行单元 |
资源 | 拥有独立的内存空间和系统资源 | 共享所属进程的内存空间和资源 |
开销 | 创建和切换开销大 | 创建和切换开销小 |
安全性 | 由于空间独立,一个进程崩溃不会影响其他进程 | 一个线程崩溃可能导致整个进程崩溃 |
系统资源 | 拥有独立的系统资源(文件句柄等) | 共享进程的系统资源 |
2、同步与互斥📌
Example
-
生产者-消费者问题
- 生产者往缓冲区放产品,消费者从缓冲区取产品
- 缓冲区满时不能生产,空时不能消费
- 本质是处理好缓冲区的互斥访问和生产消费的同步关系
-
读者-写者问题
- 多个读者可以同时读,但写者必须独占访问
- 写者写时其他人不能读写,读者读时写者不能写
- 关键是保护好数据一致性,同时避免写者饥饿
-
哲学家就餐问题
- 五位哲学家共用五只筷子,需要拿到左右两只才能吃饭
- 错误的实现容易导致死锁(都拿着一只筷子僵持)
- 考察资源分配中的死锁预防问题
-
理发师问题
- 一个理发师、一把理发椅、几把等候椅
- 没有顾客时理发师睡觉,来客人时被唤醒
- 展示了进程间的同步合作关系和有限资源的管理
这些问题都是对现实场景的抽象,本质都是在处理进程/线程间的同步与互斥关系。
进程制约:
- 直接制约(进程同步)
- 有意识的安排进程间相互协作
- 间接制约(进程互斥)
- 竞争资源无意识造成制约
Quote
同步遵循原则:
-
至多一个进程进入临界区
-
临界区外进程不能阻止其他进程进入临界区
-
请求必须在有限时间内得到响应
-
不能对CPU数量和速度假设
解决方法:软件层面 、硬件层面、 操作系统层面 (1)
-
- 信号量
- 管程
- 消息传递
3、死锁和饥饿📌
- 死锁:多进程无限等待
- 互斥资源共享
- 并发执行顺序不当
- 饥饿:长时间等待无法得到所需资源