操作系统笔记整理
Posted 湾区人工智能
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统笔记整理相关的知识,希望对你有一定的参考价值。
本文是http://c.biancheng.net/cpp/u/xitong_1/的学习笔记整理。
操作系统概述
1.1 操作系统的基本概念
操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合
1.2 操作系统的特征
并发(Concurrence)
并发是指两个或多个事件在同一时间间隔内发生。
注意同一时间间隔(并发)和同一时刻(并行)的区别。在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每一时刻,单处理机环境下实际仅能有一道程序执行,
共享(Sharing)
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可分为以下两种资源共享方式:
1) 互斥共享方式
系统中的某些资源,如打印机
2) 同时访问方式
允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即 “分时共享”。
3) 虛拟(Virtual)
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。拟处理器、虚拟内存和虚拟外部设备等。
利用多道程序设计技术,把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。
操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器(注:学到后续内容再慢慢领悟)。
4) 异步(Asynchronism)
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
1.3 操作系统的目标和功能
操作系统作为计算机系统资源的管理者
操作系统作为用户与计算机硬件系统之间的接口
一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统服务。
1) 命令接口
可以将命令接口分为联机命令接口和脱机命令接口。联机命令接口又称交互式命令接口,用户通过控制台或终端输入操作命令,向系统提出各种服务要求.
用户每输入完一条命令,控制权就转入操作系统的命令解释程序,之后,控制权又转回到控制台或终端,此时用户又可以输入下一条命令。
脱机命令接口又称批处理命令接口,即适用于批处理系统
2) 程序接口
程序接口由一组系统调用命会(简称系统调用,也称广义指令)组成。
1.4 操作系统的发展与分类
手工操作阶段(此阶段无操作系统)
批处理阶段(操作系统开始出现)
1) 单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业。问题:高速的CPU便处于等待低速的I/O完成状态
2) 多道批处理系统
即同时把多个程序放入内存,并允许它们交替在CPU中运行
多道批处理是实现作业自动控制而无需人工干预的系统,而分时系统是实现人机交互的系统
分时操作系统
在操作系统中釆用分时技术就形成了分时系统。所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需时间片排队,诞生了实时操作系统。
网络操作系统和分布式计算机系统
网络操作系统把计算机网络中的各台计算机有机地结合起来,
个人计算机操作系统
常见的有Windows、Linux和Macintosh等,
1.5 操作系统的运行机制
计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。
内核是计算机上配置的底层软件,包括;
1) 时钟管理
2) 2) 中断机制
3) 原语
4) 系统控制的数据结构及处理
1.6 中断和异常的概念
中断用来在核心态和用户态之间切换
中断(Interruption),也称外中断,指来自CPU执行指令以外的事件的发生
异常(Exception),也称内中断、例外或陷入(Trap),指源自CPU执行指令内部的事件,如程序的非法操作码
1.7 系统调用
系统调用就是用户在程序中调用操作系统所提供的一些子功能
1.8 操作系统的体系结构
操作系统在核心态应该提供什么服务、怎样提供服务?有关这个问题的回答形成了两种主要的体系结构:大内核和微内核。
微内核结构有效地分离了内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证了操作系统的可靠性。
1.9 本章疑难点
并行性与并发性的区别和联系
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生。并发性是指两个或多个事件在同一时间间隔内发生。
特权指令与非特权指令
所谓特权指令是指有特殊权限的指令,由于这类指令的权限最大,如果使用不当,将导致整个系统崩溃。比如:清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等
访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
2进程和线程管理
2.1 进程的概念和特征
进程(Process)的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。
进程控制块(Process Control Block, PCB)。系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段、相关数据段和PCB三部分构成了进程映像(进程实体)。
注意:PCB是进程存在的唯一标志!
进程的特征:
动态性,并发性,独立性,异步性,结构性。
2.2 进程的状态与转换
进程有以下五种状态,前三种是进程的基本状态。
1 运行状态
2 就绪状态
3 阻塞状态
4 创建状态
5 结束状态
2.3 进程控制
一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,它是一个不可分割的基本单位。
进程的创建
允许一个进程创建另一个进程。此时创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。此外,在撤销父进程时,也必须同时撤销其所有的子进程。
进程的终止
引起进程终止的事件主要有:正常结束,异常结束,外界干预。
进程的阻塞和唤醒
正在执行的进程,由于期待的某些事件未发生,则由系统自动执行阻塞原语(Block),使自己由运行状态变为阻塞状态。Block原语和Wakeup原语是一对作用刚好相反的原语,必须成对使用。
进程切换
进程切换是指处理机从一个进程的运行转到另一个进程上运行。
2.4 进程的组织 :控制块、程序段和数据段
进程控制块
进程创建时,操作系统就新建一个PCB结构,它之后就常驻内存,任一时刻可以存取, 在进程结束时删除。PCB是进程实体的一部分,是进程存在的唯一标志。
表2-1 PCB通常包含的内容
程序段
程序段就是能被进程调度程序调度到CPU执行的程序代码段。注意,程序可以被多个进程共享,就是说多个进程可以运行同一个程序。
数据段
一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果。
2.5 进程的通信:共享存储、消息传递和管道通信
进程通信是指进程之间的信息交换。
高级通信方法主要有以下三个类。
共享存储
消息传递
在消息传递系统中,进程间的数据交换是以格式化的消息(Message)为单位的。
管道通信
管道通信是消息传递的一种特殊方式。
2.6 线程的概念和多线程模型
引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量;而引入线程,则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
线程的属性
线程的实现方式
线程的实现可以分为两类:用户级线程(User-LevelThread, ULT)和内核级线程(Kemel-LevelThread, KLT)。
多线程模型
1) 多对一模型
2) 2) 一对一模型
3) 3) 多对多模型
2.7 处理机调度:调度的概念、时机、切换、过程以及调度方式和基本准则
调度的概念
1. 调度的基本概念
在多道程序系统中,进程的数量往往多于处理机的个数。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
2. 调度的层次
作业调度,中级调度。又称内存调度。进程调度。又称为低级调度。
3. 三级调度的联系
1) 作业调度为进程活动做准备,进程调度使进程正常活动起来,中级调度将暂时不能运行的进程挂起,中级调度处于作业调度和进程调度之间。
2) 作业调度次数少,中级调度次数略多,进程调度频率最高。
3) 进程调度是最基本的,不可或缺。
进程调度方式
1) 非剥夺调度方式,又称非抢占方式。也就是让手头进程执行完才执行优先进程。
2) 2) 剥夺调度方式,又称抢占方式。
调度的基本准则
1) CPU利用率
2) 系统吞吐量
3) 周转时间。
4) 等待时间。
5) 响应时间
2.8 操作系统典型调度算法
先来先服务(FCFS)调度算法
短作业优先(SJF)调度算法
优先级调度算法
高响应比优先调度算法
时间片轮转调度算法,主要适用于分时系统
多级反馈队列调度算法(集合了前几种算法的优点)
2.9 进程同步的基本概念:临界资源、同步和互斥
临界资源:一次只能让一个进程使用的资源。
同步亦称直接制约关系
互斥亦称间接制约关系
2.10 实现临界区互斥的基本方法
软件实现方法
1) 算法一:单标志法。
2) 算法二:双标志法先检查。
3) 算法三:双标志法后检查。
4) 算法四:Peterson’s Algorithm。
硬件实现方法
1) 中断屏蔽方法
2) 硬件指令方法
2.11 信号量:整型、记录型信号量以及利用信号量实现进程互斥和前驱关系
信号量机构是一种功能较强的机制,可用来解决互斥与同步的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。
整型信号量
记录型信号量
利用信号量实现同步
利用信号量实现进程互斥
利用信号量实现前驱关系
分析进程同步和互斥问题的方法步骤:
2.12 管程:管程的定义、组成及基本特性
管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。
管程的组成
1) 局部于管程的共享结构数据说明。
2) 对该数据结构进行操作的一组过程。
3) 对局部于管程的共享数据设置初始值的语句。
管程的基本特性
1) 局部于管程的数据只能被局部于管程内的过程所访问。
2) 一个进程只有通过调用管程内的过程才能进入管程访问共享数据。
①名称:②标识符:③类型:④位置:⑤大小:⑥保护:⑦时间、日期和用户标识
文件的基本橾作
文件的打开与关闭
4.3 文件的逻辑结构:无结构文件(流式文件)和有结构文件(记录式文件)
按逻辑结构,文件有无结构文件和有结构文件两种类型
无结构文件(流式文件)
无结构文件将数据按顺序组织成记录并积累保存,它是有序相关信息项的集合,以字节(Byte)为单位。
有结构文件(记录式文件)
有结构文件按记录的组织形式可以分为:
1) 顺序文件。
。顺序文件有以下两种结构:
第一种是串结构,第二种是顺序结构,
2) 索引文件。
3) 索引顺序文件。
4) 直接文件或散列文件(Hash File)
4.4 文件目录结构:单级、两级、多级(树形)和无环图目录结构
1) 文件控制块。
文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。
目录结构
1) 单级目录结构。
2) 两级目录结构。
单级目录很容易造成文件名称的混淆,可以考虑釆用两级方案,将文件目录分成主文件目录(Master File Directory, MFD)和用户文件目录(User File Directory, UFD)两级,
3) 多级目录结构(树形目录结构)。
4.5 共享文件
现代常用的两种文件共享方法有:
基于索引结点的共享方式(硬链接)
利用符号链实现文件共享(软链接)
4.6 文件保护:文件访问类型和访问控制
文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。
访问类型
对文件的保护可以从限制对文件的访问类型中出发。可加以控制的访问类型主要有以下几种:
• 读:从文件中读。
• 写:向文件中写。
• 执行:将文件装入内存并执行。
• 添加:将新信息添加到文件结尾部分。
• 删除:删除文件,释放空间。
• 列表清单:列出文件名和文件属性。
访问控制
解决访问控制最常用的方法是根据用户身份进行控制。而实现基于身份访问的最为普通的方法是为每个文件和目录增加一个访问控制列表(Access-Control List, ACL),以规定每个用户名及其所允许的访问类型。
其实现方法有: • 釆用硬件缓冲器,但由于成本太高,除一些关键部位外,一般不釆用硬件缓冲器
• 釆用缓冲区(位于内存区域)。
1) 单缓冲
在设备和处理机之间设置一个缓冲区。设备和处理机交换数据时,先把被交换数据写入缓冲区,然后需要数据的设备或处理机从缓冲区取走数据。
2) 双缓冲
双缓冲机制提高了处理机和输入设备的并行操作的程度。
3) 循环缓冲
包含多个大小相等的缓冲区,每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,多个缓冲区构成一个环形
4) 缓冲池
由多个系统公用的缓冲区组成,缓冲区按其使用状况可以形成三个队列:空缓冲队列、装满输入数据的缓冲队列(输入队列)和装满输出数据的缓沖队列(输出队列)。
3. 高速缓存与缓冲区的对比
高速缓存是可以保存数据拷贝的高速存储器,访问高速缓存比访问原始数据更高效速度更快
5.6 设备分配与回收
1. 设备分配概述
从设备的特性来看,釆用下述三种使用方式的设备分别称为独占设备、共享设备和虚拟设备(假脱机I/O技术)三类。
2. 设备分配的数据结构
设备分配依据的主要数据结构有设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)和系统设备表(SDT),
3. 设备分配的策略
1) 设备分配原则:设备分配应根据设备特性、用户要求和系统配置情况。分配的总原则既要充分发挥设备的使用效率,又要避免造成进程死锁,还要将用户程序和具体设备隔离开。
2) 设备分配方式:设备分配方式有静态分配和动态分配两种。
4. 设备分配的安全性
5. 逻辑设备名到物理设备名的映射
5.7 SPOOLing技术(假脱机技术)
该 技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。SPOOLing的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中釆 用的一项将独占设备改造成共享设备的技术。
SPOOLing系统组成:
输入井和输出井
输入缓冲区和输出缓冲区
输入进程和输出进程
SPOOLing系统的主要特点有:提高了 I/O的速度;将独占设备改造为共享设备;实现 了虚拟设备功能。
5.8 输入/输出(I/O)知识点汇总
以上是关于操作系统笔记整理的主要内容,如果未能解决你的问题,请参考以下文章