本系列博文是西安电子科技大学出版社出版的《计算机操作系统》(第三版)汤小丹 梁红兵 哲凤屏 汤子瀛 一书的读书笔记
特此注明为读书笔记,若有侵权,敬请通知本人
1. 有效性:
(1)提高了系统资源利用率,如使空闲的CPU和I/O保持忙碌状态,有效的内存分配策略节省存储空间等
(2)提高了系统的吞吐量
2. 方便性: 便于使用,如引入GUI操作界面
3. 可扩展性: 能适应于不同的计算机硬件、体系结构
4. 开放性: 遵循开放系统互联(OSI) 的标准,兼容软硬件,方便实现计算机互联
1. 用户和硬件间的接口:(1)命令方式 (2)图形界面方式(3)系统调用(在应用程序中)
2. 管理计算机资源:如内存的分配与回收、CPU管理、I/O管理、文件管理等等
3. 抽象计算机系统资源:隐藏计算机硬件的细节,向上提供高级抽象
1. 对计算机资源利用率的追求:如能提高I/O设备和CPU利用率的SPOOLing系统,提高存储器系统利用率的虚拟存储技术
2. 方便用户
3. 硬件的更新迭代
4. 计算机体系结构的发展
问题:CPU和I/O之间速度鸿沟太大,CPU的空闲率高
解决方法:脱机输入输出技术(Off-Line I/O)
优点:
(1)减少了主机CPU的空闲时间(外围机完成了输入输出设备和磁盘的连接)
(2)提高了I/O的速度,CPU在运行中需要数据的时候,可以从高速的磁带/磁盘中将数据调入内存
相比”无操作系统的计算机操作系统“多了一个监督程序(Monitor)
(1)自动性
(2)顺序性
(3)单道性(内存中仅有一道程序在运行)
精髓:由调度算法从队列中选取若干作业调入内存,共享CPU等系统资源
好处:
(1)资源利用率高(CPU、内存、I/O)
(2)吞吐量大
坏处:
(1)平均周转时间长(作业仍需要排队,比如就算A申请I/O中断了,CPU也会先跑B,不会跑C)
(2)无交互能力(提交后,直到其完成)
要解决的问题:处理器、内存、文件、I/O、作业的管理问题
精髓:一主机,多终端共享资源,时间片
要解决的问题:及时接收,及时处理(重要,影响人机交互体验)
精髓:系统能及时响应外部事件的请求,在规定的时间内完成处理。相比分时系统更强调“可靠性”,不能有差错。
1. 单用户单任务操作系统:一次一个用户,一次一个程序,例:MS-DOS
2. 单用户多任务操作系统:一次一个用户,若干程序并发执行,例:windows
3. 多用户多任务操作系统:多个用户终端连接一个主机,每个用户有若干程序。每个用户被分配时间片,在自己的时间片中,用户 程序并发执行,例:UNIX
1. 并行、并发
并行:多个事件在同一时刻发生;并发:多个事件在同一个时间段内发生(一个时刻仍只允许发生一个事件)
只有在多处理器架构上,才有并行。
2. 进程
为什么引入进程:为了并发。如果没有并发,程序是一个执行单元,要么做完,要么一点也不做,就变成单任务了。多个进程之间可以并发执行、交换信息
3. 线程
进程拥有自己的资源,调度的时候有一定开销。为什么引入线程:为减少调度开销,提高并发度。一个进程有多个线程,它们共享这个进程的资源。结果:进程是分配资源的基本单位;线程是运行和调度的基本单位。
概念:系统资源供多个在内存中的并发执行的进程共享
实现方式:
1. 互斥共享
2. 同时访问(单处理器上同时间段,不同时刻访问;多处理器上可以实现同时刻访问(真正的同时))
概念:使一个物理实体对应多个逻辑实体
1. 时分复用技术
1)虚拟处理器技术(分时间片供多个用户使用,就好像感觉每个用户都有一个处理器为它们服务一样)
2)虚拟设备技术(比如打印机)
2. 空分复用技术
1)虚拟磁盘技术(一个盘片分成几个卷,如windows上面的C、D、E盘等)
2)虚拟存储器技术(在逻辑上扩大存储器容量,后面在将存储器一章的时候,会详细介绍)
内存中有各种作业,处理器密集型的,I/O密集型的。由于各种原因,进程完成的时间是不可预知的,这就是进程的异步性。
主要功能:创建,撤销,终止进程;控制进程运行中的状态转化;为进程创建,撤销,终止线程
主要功能:协调多个进程(含线程)的运行
两种方式:
(1)进程互斥
(2)进程同步
实现方法:最简单:锁,最常用:信号量
相互合作的进程之间需要交换信息
(1)作业调度
从后备作业队列中,按算法选出若干作业,调入内存,建立进程,按算法插入就绪进程队列
(2)进程调度
从就绪进程队列中,按算法选出一个进程(一个处理器上),分配处理器,保存上下文信息,执行。
(另外,如果是在 “线程作为运行和调度的基本单位” 的多线程OS中,就把上面的“进程”换成线程就好了。)
作用:为要运行的程序分配内存空间。
分类:
静态内存分配:作业的内存空间在装入时已确定,不得更改;也不准作业在内存中移动
动态内存分配:装入时有一个大概的基本空间,后面可以再申请;允许作业在内存中移动
作用:确保程序都只在自己的那块内存中运行
实现:由硬件作越界检查,发现越界后与软件配合处理
作用:把地址空间中的逻辑地址转换为内存空间中对应的物理地址,让程序正确运行。
作用:允许内存中有更多的程序并发执行
实质:用一些技术使内存能装入更多的程序来并发执行,实际上并没有提高内存的容量。
实现:
(1)请求调入功能:只装入程序的一部分和部分数据就可以让程序执行。运行到需要程序别的部分和新数据了,再叫OS从磁盘调入。
(2)置换功能:发现内存中没有足够空间来容纳需要调入的程序和数据了,叫OS看看能不能把内存中暂时不用的程序和数据调回磁盘去,腾出空间纳入亟需使用的程序和数据。
1. 缓冲管理
2. 设备分配
3. 设备处理
2. 目录管理
3. 读/写管理、保护
1.4.5 OS和用户间的接口
(1)用户接口(2)程序接口(系统调用)