自考《操作系统》总结(持续更新)
第一章:操作系统概论
第一节:操作系统的概念
一、计算机系统
1、计算机系统定义:是按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。
2、计算机系统构成:硬件系统和软件系统。
3、硬件系统组成:中央处理器(CPU)、主存储器、辅助存储器、各种输入/输出设备。
二、操作系统的定义(管理资源、控制程序、提供服务)
1、操作系统定义:★ 在计算机中,集中了资源管理功能、控制程序执行、并向用户提供各种服务功能,使用户更灵活、方便、有效的使用计算机的软件称为操作系统。
2、操作系统的三大作用:★
- 资源的管理者、
- 向用户提供各种服务、
- 对硬件机器的扩展
三、操作系统的特征
1、并发性:是指在计算机系统中同时存在着若干个运行着的程序,从宏观上看,这些程序在同时向前推进、
2、共享性:操作系统需与多个用户共享系统中的各种资源,比如CPU、内存、外部设备等。
3、随机性:操作系统不能对所运行的程序的行为以及硬件设备的情况作出事先的假定。即操作系统不能预知程序什么时候运行,什么时候因为什么原因暂停,什么时候能得到资源继续运行,什么时候运行结束等,这些都是不可预知的。
四、研究操作系统的观点
1、软件的观点:
操作系统是一种大型系统软件,它是多种功能程序的集合。有外在特性和内在特性。
外在特性:接口
内在特性:与硬件交互
2、资源管理的观点:
操作系统负责登记谁在使用什么样的资源,系统中还有哪些资源空闲,当前响应了谁对资源的请求,以及回收那些不再使用的资源等。
3、进程的观点:
把操作系统看做由多个同时独立运行的程序和一个对这些程序进行协调的核心。
侧重于分析系统各部分的并行工作,研究处理各项管理任务的分割以及这些管理任务相互之间的关系,比如:竞争关系、进程通信。
4、虚机器的观点:
在操作系统的支持下,用户不需要直接使用硬件机器(裸机),而是使用操作系统提供的各种手段来控制和使用计算机。
例如,把所有设备和文件的操作抽象为统一的打开、关闭、读、写等,用户感觉不到底层的操作差异。
把操作系统的全部功能,包括系统调用、命令、作业控制语言等、称为操作系统虚机器。
5、服务提供的观点:
从用户的角度、站在操作系统之外观察操作系统。认为该服务提供者为用户提供了比裸机功能更强、服务质量更高、更方便灵活的虚拟机。
五、操作系统的功能(谐音:进村拥吻蛇)
1、进程管理
①进程管理的实质:对中央处理器进行管理。或者称为处理机管理。
②多道程序技术:多个程序同时放入内存,如果一个程序因为等待某个条件而不能运行,就把处理器专用权转交给另一个可运行程序。
③进程的引入:为了描述多道程序的并发而引入
④进程的简单定义:一个程序的运行过程
进程管理的内容:进程控制、进程同步、进程间通信、调度。
2、存储管理
(1)任务:管理计算机内存的资源
(2)功能:
①:内存的分配与回收:当多个程序共享有限的内存资源时。要考虑如何为多个程序分配有限的内存空间,以及程序运行完毕还需要内存回收。
②:内存保护:存储在内存中的多个程序和数据应该彼此隔离、互不干扰。
③:内存扩张:将辅助存储器作为内存的扩充空间
3、文件管理
(1)任务:有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题、以便用户方便、安全地访问文件。
(2)功能:
①:文件存储空间的管理
②:目录管理
③:文件系统的安全性
4、设备管理
(1)设备管理的含义:指计算机系统中除了处理器和内存以外的所有输入、输出设备的管理。
(2)功能:负责外部设备的分配、启动和故障处理
(3)采用的技术:中断技术、通道技术、虚拟机技术、缓冲技术,尽可能发挥设备和主机的并行能力。
5、用户接口
(1)从用户观点看,操作系统是用户与计算机之间的接口。
(2)任务:为用户提供一个使用系统的良好环境,使用户能有效地组织自己的工作流程,并使整个系统高效地运行。
第二节:操作系统体系结构
一、Windows操作系统的体系结构
1、内核:线程调度、陷入处理和异常调度、中断处理和调度、多处理器同步、供执行体使用的基本内核对象。
2、硬件抽象层HAL:系统可移植性的关键部分,为运行在Windows操作系统上的硬件平台低级接口,隐藏了各种与硬件有关的细节,如I/O接口等专用的和依赖于计算机平台的函数。
3、执行体:属于内核,以系统函数的形式提供了系统的服务,可通过Win32API进行访问。
4、系统进程和系统线程:执行系统代码。
二、UNIX操作系统的体系结构
1、内核层:
是操作系统管理和控制中心,常驻内存。有两种接口:内核与硬件的接口和内核与shell的接口。
内核本身分为两个部分:进程控制子系统和文件子系统。
2、系统层
内核层与应用层之间,供程序员并发调用,包括进程管理、文件管理、终端状态。
3、应用层:
面向用户操作的界面
三、Linux操作系统的体系结构
四个部分:内核、shell。文件系统和应用程序
四、Android操作系统的体系结构
四个部分:从高到低:应用程序层、应用框架层、系统运行库层和Linux内核层。
第三节:操作系统的发展
1、手工阶段
2、监控程序
3、多道批处理
4、分时与实时操作系统
5、UNIX通用操作系统
6、个人计算机操作系统
7、Android操作系统
第四节:操作系统的分类
一、批处理操作系统
1、基本工作方式
(1)用户将作业交给系统操作员
(2)系统操作员将许多用户的作业组成一批作业, 输入到计算机系统中,在系统中形成一 个自动转接的连续的作业流
(3) 启动操作系统
(4)系统自动、依次执行每个作业
(5)由操作员将作业结果交给用户
2、特点与分类:
特点:成批处理,用户不能干预自己作业的运行。
目标:系统资源利用率高,作业吞吐率高。
分类:简单批处理和多道批处理。
3、设计思想:
在监控程序启动之前,操作员有选择地把若干个作业合并成一批作业,将这批作业安装在输入设备上,然后启动监控程序。监控程序将自动控制这批作业的执行。
作业的运行与衔接都由监控程序自动控制,从而有效地提高了作业运行的效率。
4、作业控制说明书:
作业控制说明书是由作业控制语言写的一段程序,他通常存储在被处理作业的前面。
作业的运行由作业说明书来传递给监控程序,运行过程中,监控程序读入并解释作业说明书,以控制各个作业步的执行。
5、一般指令和特权指令
操作系统的运行模式:用户模式和特权模式
处理器的状态:目态和管态
机器指令:一般指令和特权指令
系统调用:用户程序不能直接使用特权指令,它们必须向操作系统请求这些功能,这些功能通过系统调用完成。
6、系统调用的过程
(1)当系统调用发生时,由中断或异常处理程序,把控制流程转移到监控程序内的一些特定位置,处理机模式变为特权模式。
(2)由监控程序执行被请求的功能
(3)恢复现场,运行模式变为用户模式,控制权交给用户程序。
7、SPOOLing技术
是多道程序设计的关键技术之一,也称为假脱机技术。
二、分时系统
1、基本工作方式
在分时系统中,一主机连接了若干个终端,每个终端可由一个用户使用。用户通过终端交互地向系统终端提出命令请求,系统接收用户命令后,采用时间轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
2、特点:
- 多路性
- 交互性
- “独占性”
- 及时性
三、实时操作系统
1、定义:实时操作系统是指,计算机能在规定的时间内,及时响应外部实事件的请求,同时完成对该事件的处理,并能够控制所有实施设备和实时任务协调一致地工作的操作系统。
2、目标:在严格时间范围内,对外部请求做出反应,系统具有高可靠性。
3、分类:硬实时系统和软实时系统
4、能力:除了多道程序系统的基本能力外,还有一下功能:
(1)实时时钟管理
(2)过载防护
(3)高可靠性
四、嵌入式操作系统
1、定义:
在各种电器、电子和智能机械上、嵌入安装着各种微处理或微控制芯片。
嵌入式操作系统就是运行在嵌入式芯片环境中,对整个芯片以及它所操作、控制的各种部件装置等资源进行统一协调。调度、指挥和控制的系统软件。
五、个人计算机操作系统
计算机在某一时间内为单用户服务。
追求目标: 界面友好,使用方便丰富的应用软件。
六、网络操作系统
基于计算机网络 在各种计算机操作系统上按网络体系结构协议标准开发的软件
功能:网络管理,通信,安全,资源共享和各种网络应用
追求目标:相互通信,资源共享
七、分布式操作系统
分布式系统:或以计算机网络为基础,或以多处理机为基础,基本特征是处理分布在不同计算机上。
分布式操作系统:是一个统一的操作系统,允许若干个计算机可相互协作共同完成一项任务。 操作系统可将各种系统任务在分布式系统中任何处理机上运行, 自动实现全系统范围内的任务 分配、自动调度、均衡各处理机的工作负载。
特点:处理能力增强、速度更快、可靠性增强、具有透明性
第五节:操作系统设计
一、操作系统的设计过程
1、功能设计:
确定所设计的操作系统应具备哪些功能以及操作系统的类型。跟目标有关。
2.、算法设计:
选择和设计满足系统功能的算法和策略,并分析和估算其效能。
3、结构设计:
二、操作系统的设计目标(可高可易安简)
1、可靠性
2、高效性
3、易维护性
4、可移植性
5、安全性
6、简明性
三、操作系统的结构设计
1、系统模块化
2、模块标准化
3、通信规范化
四、操作系统的结构
1、整体式结构
2、层次式结构
3、微内核(客户/服务员)结构
第二章:操作系统运行环境
第一节:处理器
一、处理器的构成与基本工作方式
定义:处理器一般由运算器、控制器和一系列寄存器以及高速缓存构成。
①运算器:实现指令中的算术和逻辑运算
②控制器:控制程序运行流程
③寄存器:处理执行指令中暂存数据、地址以及指令信息
④高速缓存:为CPU和内存提供一个高速的数据缓存区域
1、处理器中的寄存器
分类 | 用户可见寄存器 | 控制和状态寄存器 |
---|---|---|
定义 | 由编译程序分配,减少程序运行时访问内存的次数。 | 用于控制处理器的操作,由具有特权的操作系统代码使用以控制其他程序的执行。 |
常见寄存器 | 一般包括数据寄存器、地址寄存器、条件码寄存器。 | 常见的寄存器是程序计数器(PC)、指令寄存器(IR)、程序状态字(PSW) |
2、指令执行的基本过程:
(1)步骤:
①:读取指令,并将程序计数器的值变成下一条指令的地址。
②:指令放入指令寄存器中,处理器解释并执行该指令。
(2)指令的分类:
访问存储器指令:负责处理器和存储器之间的数据传送
I/O指令:负责处理器和I/O模块之间的数据传送和命令发送
算术逻辑指令:又称数据处理指令,用以执行有关数据的算术和逻辑操作
控制转移指令:可以指定一个新的指令的执行起点
控制器控制指令:用于修改处理器状态,改变处理器工作方式
二、特权指令和非特权指令
在多道程序环境下,指令分为特权指令和非特权指令
1、特权指令:
在操作系统中那些只能由操作系统使用的指令
不允许一般用户使用
比如:设置程序状态字、启动某程序、设置中断屏蔽字等
2.非特权指令:
普通用户使用的指令
三、处理器的工作状态
1、管态和目态
管态 | 目态 |
---|---|
操作系统管理程序运行时的状态,又称内核态、系统态等,具有较高特权 | 一般用户程序运行时的状态,又称用户态、普通态,具有较低特权 |
2、处理器工作状态的转换
目态到管态 | 管态到目态 |
唯一途径是通过中断。中断响应时交换中断向量,新的中断向量的PSW的处理器状态标志位管态 | 可通过设置PSW指令(修改程序状态字),实现从操作系统向用户程序的装换 |
3、限制用户程序执行特权指令
当用户执行程序时,如果取到了一条特权指令,则处理器拒绝执行该指令,并形成一个“非法操作”事件。然后操作系统通知用户程序:“程序中有非法指令”。
四、程序状态字
为了解决处理器当前工作状态的问题,所有的处理器都有一些特殊寄存器,用以表明处理器当前的工作状态。比如用一个专门的寄存器来指示处理器的状态,称为程序状态字(PSW),用程序计数器(PC)这个专门的寄存器来指示下一条要执行的指令。
程序状态字(PSW)一般包括:
CPU的工作状态码:指明当前的工作状态是管态还是目态。
条件码:反映指令执行后的结构特征,比如结果为0等。
中断屏蔽码:指出是否允许中断
CF:进位标志位、ZF:结果为0标志位
第二节:计算机系统硬件部件
一、存储系统:
1、存储器的类型:
(1)类型:
读写型存储器(RAM) | 用来存储随机存取的程序和数据 |
只读存储器(ROM) | 存放一下固话的程序 |
(2)存储分块
存储的最小单位:二进位(bit),只有1和0
最小编制单位:字节
分块:为了分配和管理方便,将内存划分为大小相等的块(物理页Page)。以块为单位分配内存空间,大小一般为512B、1kb、4kb、8kb。
2、存储器的层次结构
(1)容量、速度和成本的匹配
(2)存储访问局部性原理
程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下是顺序执行的
过程调用将会使程序的执行轨迹,由一部分区域转移至另外一部分区域,即程程序会在一段时间,都局限这些程序的范围运行。
3、存储器保护
多道程序设计系统中,保证每个程序独立运行,互不干扰,称为存储器保护。
方法:界地址寄存器
二、I/O部件:略,可看第8章。
三、时钟部件
1、功能:
(1)发现死循环,防止机时的浪费
(2)分时系统中,时间间隔实现时间片的轮转执行
(3)实时系统中,按要求的时间间隔控制设备
(4)定时唤醒各个外部事件
(5)记录各个设备使用时间和某外部事件发生的时间间隔
(6)记录用户和系统所需的绝对时间,即年、月、日
2、分类:
硬件时钟和软件时钟
按用途分:绝对时钟和相对时钟
第三节:中断机制
一、中断和异常的概念
1、中断与异常:
①中断:指处理器对系统中或系统外发生的异步事件的响应。
②异步事件:指无一定时序关系的随机发生的事件,如外部设备完成数据传输任务,某一实时控制设备出现异常情况等。
③中断源:引起中断的事件称为中断事件或中断源。
④中断请求:中断源向处理器发出的请求信号。
⑤中断处理程序:处理中断事件的程序。
⑥断点:发生中断时正在运行的程序的暂停点。
⑦中断响应:处理器暂停当前程序转而处理中断的过程。
⑧中断返回:中断处理程序结束后恢复原来程序的执行。
⑨中断向量表:为使得中断装置可以找到恰当的中断处理程序,专门设计了中断处理程序的入口地址映射表,又称中断向量表。
⑩异常:由正在执行的指令引发的中断。
2、中断与异常的分类
二、中断系统
中断系统是现代计算机系统的核心机制之一,他不是单纯的硬件或者软件的概念,而是硬件和软件相互配合、相互渗透而使得计算机系统得以充分发挥能力的计算机模式。
1、中断请求的接收:
中断系统如何接收中断源的中断请求,因机器而异,一般由中断逻辑线路和中断寄存器实现的。
2、中断响应:
处理器的控制部件中有中断信号扫描结构,他在每条指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号到来。若无中断信号,处理器就继续执行下一条指令。若有中断到来,处理器接收由硬件中断装置发来的中断向量代号,准备中断处理工作。
3、中断处理:
中断信号被接收和响应后,进行中断处理,包括:检查I/O设备或者设备和内存之间传送数据等。
中断处理结束后,中断返回,恢复系统上下文,原有程序继续运行。处理器状态也从管态恢复成目态。
整个中断信号的接收。响应和处理过程,可归纳为以下步骤:
(1)接收和响应中断
(2)保护中断现场
(3)分析中断向量,调用中断处理程序
(4)中断处理结束恢复现场,原有程序继续执行
4、集中典型中断的处理:
(1)I/O中断
(2)时钟中断
(3)硬件故障中断
(4)程序性之中断
(5)系统服务请求
三、中断优先级、中断屏蔽与中断嵌套
1、多级中断与中断优先级
作用:
(1)对各类中信号依据其紧急程度和重要性划分级别,系统优先处理最紧急或最重要的任务。
(2)解决如果有多个中断信号同时达到,如何选择首个被处理的中断信号的问题。
2、中断屏蔽:
在整个中断系统中,允许或禁止中断系统对某些类别中断的响应。PSW(程序状态字)中设有屏蔽位。
还有一类中断信号是不能被屏蔽的,一般这类中断信号属于机械故障中断,比如掉电,机器无法继续工作,一旦发生无论信号是否被屏蔽,处理器都会立即响应,并进行处理。
3、中断嵌套
一般的计算机系统都有多个中断源,如果一个中断处理的过程中发生了中断,有两个策略处理:
(1)当处理一个中断时禁止其他中断
(2)中断嵌套:是指中断发生后,若出现优先级别比正在处理的中断级别高的中断,则先处理优先级别高的中断。
第四节:系统调用
一、系统调用简介
系统调用概念:就是用户在程序中调用操作系统提供的一些子功能,是操作系统提供给编程人员的唯一接口。
是一种特殊的过程调用,由特殊的机器指令实现(访管指令),这条指令将系统转入管态。
执行模式:系统调用在管态下运行,用户程序在目态下运行,用户程序可以通过“访管指令” 实现用户程序与系统调用程序之间的转换。(注:访管指令本身是一条在目态下执行的指令)
1、系统调用与函数调用的区别:
区别 | 系统调用 | 函数调用 |
---|---|---|
运行在不同状态 | 管态 | 目态 |
状态的转换 | 目态→管态→目态 | 无转换 |
返回问题 | 如果有优先级更高的进程,则执行优先级更高的进程 | 返回调用程序继续执行 |
嵌套调用 | 允许嵌套调用 | 允许嵌套调用 |
2、系统调用的分类:
(1)进程控制类
(2)文件操作类
(3)进程通信类
(4)设备管理类
(5)信息维护类
3、系统调用与库函数、API、内核函数的关系:
二、系统调用的处理过程
陷入(trap):
在系统中控制系统调用服务的机构称为陷入或异常处理机构。
陷入或异常指令(访管指令):
把由于系统调用引起处理器中断的指令称为陷入或异常指令(或称访管指令)
处理过程:
第三章:进程和线程
第一节:多道程序设计
一、程序的顺序执行
1、程序顺序执行的定义:
程序是在一个时间上按严格时间次序前后相继的操作序列。
计算机也是以顺序方式工作的;计算机一次执行一条指令、对内存一次访问一个字节或字,对外部设备一次传送一个数据块等。
我们把一个具有独立功能的程序独占处理器直到得到最终结果的过程称为程序的顺序执行。
2、程序顺序执行的特点:
(1)顺序性:程序所规定在机器上严格地按照顺序执行。
(2)封闭性:程序运行后,其计算机结果只取决于程序本身,程序执行的到的最终结果由给定的初始条件决定,不受外界因素影响。
(3)程序执行结果的确定性:程序执行的结果与执行速度无关
(4)程序执行结果的可再现性:如果程序在不同的时段执行,只要初始提条件相同,则结果就会相同
二、程序的并发执行
1、并发执行的定义
所谓并发执行,是指两个或两个以上程序在计算机系统中,同时处于执行且尚未结束的状态。
能够参与并发执行的程序称为并发程序
并发程序的执行和程序顺序执行的特征不同
2、并发执行的特征如下:
(1)在执行期间并发程序相互制约
(2)程序与计算不再一 一对应,允许多个程序共享一个程序段。
(3)并发程序的执行结果不可再现,并发程序与执行的相对速度以及并发执行的多道程序之间的相互关系有关。
(4)程序的并发执行和程序的并行,并发:宏观是同时;微观是顺序,并行:微观是同时。
三、多道程序设计
1、多道程序的引入:
顺序环境下:
并发环境下:采用多道程序设计技术:
2、多道程序环境设计的特点
多道程序设计:就是运行多个程序同时进入内存并运行。根本目的是提高整个系统的效率
吞吐量:是指单位时间内系统所处理进程的道数,是衡量系统效率的尺度。
(1)独立性:早多道程序下执行的每道程序在逻辑上都是独立的,且执行速度与其他程序无关,执行的起止时间也是独立的。
(2)随机性:程序和数据的输入与执行开始时间都是随机的
(3)资源共享性
3、多道程序设计环境缺陷
(1)可能延长程序的执行时间
(2)系统效率的提高有一点限度
第二节:进程
一、进程的定义
进程是具有一定独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位
分为:系统进程和用户进程
1、进程与程序的联系和区别
(1)进程和程序的联系
程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序
进程 = 程序 + 数据 + 进程控制块
(2)进程和程序的区别
①程序是静态的,进程是动态的
②二者是多对多的关系
2、可再入程序
一个能够被多个用户同时调用的程序称作是“可再入”程序。
可再入程序必须是纯代码,程序在执行过程中不会修改自己的代码,必须与数据区隔离。
比如:操作系统、编译程序,它们能同时被不同用户而形成不同的进程。
3、进程的特征
(1)并发性:一个进程可同其他进程一道向前推进。
(2)动态性:进程有生命周期,进程的动态是不断变化的。
(3)独立性:一个进程是一个相对完整的资源分配单位。
(4)交往性:一个进程在运行过程中肯会与其他进程发生直接或间接的相互作用。
(5)异步性:每个进程按照各自独立的、不可预知的速度向前推进。
(6)结构性:一个进程由程序、数据和进程控制块三部分组成。
二、进程的状态与转换
1、三状态进程模型
(1)运行状态:进程已经获得处理器,并在处理器上执行的状态。
(2)就绪状态:指一个进程已经具备运行的条件,但由于没有获得处理器而不能运行所处的状态
(3)等待状态:也称阻塞状态或者封锁状态。指进程因等待某种事件发生而暂时不能运行的状态。
①就绪→运行
②运行→就绪
③运行→等待
④等待→就绪
2、五状态进程模型
(1)运行状态
(2)就绪状态
(3)阻塞状态
(4)创建状态
(5)结束状态
①创建新进程
②提交
③调度运行
④释放
⑤超时
⑥时间等待
⑦时间出现
3、 七状态进程模型
好处:
①就绪状态:
②阻塞状态:
③就绪挂起状态:
④阻塞挂起状态:
①挂起:
②激活:
③事件出现:
三、进程控制块(PCB):(本质是数据结构)
为了便于系统控制和描述进程的活动过程,在操作系统核心中定义了一个专门的数据结构,称为PCB。
PCB的作用:描述进程的基本情况以及进程的运行变化过程。
PCB是进程存在的唯一标志,当系统创建一个进程时,为进程设置一个PCB,再利用PCB对进程进行控制和管理。撤销进程时,系统收回PCB,进程也随之消失。
1、PCB的内容
(1)调度信息:
供进程调度时使用,包括进程名、进程号、地址空间信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等。
(2)现场信息:
刻画了进程的运行情况,主要是CPU寄存器的信息,如程序状态字、时钟、界地址寄存器等、当程序中断时,需要保存现场信息。
2、进程的组成
进程由程序、数据和进程控制块组成
PCB是“灵魂”;
程序和数据是“躯体”。
3、PCB组织
(1)线性方式
(2)索引方式
(3)链接方式
4、进程的队列:
(1)就绪队列
(2)等待队列
(3)运行队列
5、进程队列的组成:
进程队列实际是PCB的链接,链接分为:单项列表和双向链表。
出队:一个进程从所在队列退出
入队:一个进程入到指定队列
插队:一个进程插入到某个进程队列的指定位置
四、 进程控制
定义:对进程整个生命周期中各个状态之间的转换进行的控制。由原语实现。
原语:(要么不做,要么全做。)就是由若干条指令组成的,用于完成一定功能的一个过程,是一个不可分割的基本单位。即原语在执行过程中不允许被中断。原子操作在系统状态下执行,常驻内存。
1、进程控制原语
(1)创建原语:
一个进程可以使创建原语创建一个新的·进程,前者称为父进程,后者称为子进程,子进程又可以创建新的进程,从而形成一个进程家族。
主要任务:建立进程控制块PCB
过程:先申请 一块空闲的PCB,然后将有关信息填入PCB,置进程状态为就绪状态,插入就绪队列。
(2)撤销原语:
当一个进程完成任务后,就应当撤销它,以便及时释放它所占用的资源。
撤销的实质:撤销进程控制块PCB。
过程:找到要被撤销进程的PCB,将它从所在队列中消去,撤销属于该进程的一切“子进程”,释放所占全部资源,并消去被撤销进程的PCB。
(3)阻塞原语
若某个进程的执行过程中需要I/O操作,则该进程调用阻塞原语将其从运行状态转换为阻塞状态。
过程:产生中断,把处理器的当前状态保存在PCB的现场信息中,当前进程置为等待状态,插入等待队列。
(4)唤醒原语
一个进程因为等待某个事件的发生而处于等待状态,当该事件发生后,就用唤醒原语将其转换为就绪状态。
过程:在等待队列中找到该进程,将进程的当前状态置为就绪状态,然后将它从等待队列中撤回并插入到就绪队列中排队 ,等待调度执行。
2、UNIX操作系统的进程创建操作
第三节:线程
一、线程的基本概念
1、什么是线程
进程的两个属性:
一个可拥有独立资源的单位
可独立调度和分派的基本单位
程序并发执行所需付出的时空开销:
创建进程的开销:
内存空间、I/O设备、PCB
撤销进程的开销:
对资源做回收
进程的切换开销:
保存CPU环境,设置新进程CPU环境
这些开销,限制了系统中进程的数目,进程切换也不宜频繁,限制了并发程度的进一步提高。
引入线程的目的:
引入线程是为了使多个进程并发执行
引入线程是为了减少程序并发执行时所付出的时空开销。
线程的定义:
●在引入线程的操作系统中,线程是进程中的一个实体,是处理器调度和分配的基本单位。
●线程基本上不拥有系统资源,只拥有少量在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所有的全部资源。
1、什么是线程:
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程可以并发执行。
2、线程的属性
(1)每个线程有一个可以唯一的标识(thread)和一张线程描述表(TCB)。
(2)不同的线程可以执行相同的程序。
(3)同一个进程中的各个线程共享该进程的内存地址。
(4)线程是处理器的独立调度单位,多个线程可以并发执行。
(5)一个线程具有生命周期,经理等待,就绪、运行状态变化。
3、引入线程的好处
(1)创建新线程花费时间少
(2)线程之间的切换时间少
(3)线程之间通信无需调用内核,不需要额外的通信机制,使通信简单、信息传送速度快。
二、进程和线程的比较
1、调度
线程作为调度的基本单位,同进程中的线程切换不引起进程切换,当不同进程的线程切换时才引起进程切换。
2、并发性
一个进程间的多个线程可并发,不同进程的多个线程也可以并发执行。
3、拥有资源
线程仅拥有隶属进程的资源;进程是拥有资源的独立单位
4、系统开销
线程低,进程高。
三、线程实现机制
1、用户级线程
仅存在用户空间,由用户层中的线程库提供对线程的创建、撤销、切换以及线程之间的同步与通信等的支持,而无须内核的支持的。
2、内核级线程
由OS直接支持,更灵活,方便
3、混合方式
第四节:进程调度
一、概述
1、进程调度的主要功能
(1)记录系统中所有进程的执行状况;
(2)根据一定的调度算法,从就绪队列中选出一个进程,准备把处理器分配给它;
(3)分配处理器
2、进程调度的时机
(1)正在执行的进程运行完毕
(2)正在执行的进程由某种错误而终止执行
(3)时间片用完
(4)正在执行的进程调用阻塞原语将自己阻塞起来
(5)创建了新的进程
(6)正在执行的进程调用了唤醒原语操作激活了等待资源的进程
3、处理器的调度方式:非抢占式和抢占式
(1)非抢占式
一旦把处理器分配给某进程后,就一直让它运行下去,绝不会因为时钟中断,或任何其他原语,去抢占该正在运行进程的处理机,直至该进程完成,或发生某时间而被阻塞,才把处理器分配给其他进程 。
(2)抢占式
允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机,重新分配给另一进程。
抢占式能满足实时任务的需求。但抢占式比较·复杂,所需付出开销也较大
二、调度算法设计原则
1、进程行为
I/O密集型和计算密集型
2、系统分类
批处理、交互式、实时系统
3、调度算法的设计目标
共同目标:资源利用率高、公平、平衡、强制执行策略
批处理目标:平均周转时间短、系统吞吐量高、处理机利用率好
分时系统:响应时间快、均衡性
实时操作系统:截止时间的保证、可预测性
三、进程调度算法
周转时间 = 完成时间 - 到达时间
1、先来先服务
(1)算法思想:总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机。
(2)优点:实现简单
(3)缺点:没考虑进程的优先级
2、最短进程优先
(1)算法思想:该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机
(2)优点:所有进程都同时可运行时算法最优。
3、最短剩余时间优先算法
算法思想:总是选择剩余时间最短的那个进程运行。当一个新的进程到达时 ,其整个时间同当前进程的剩余时间做比较,如果新的进程时间更少,则当前进程被挂起,而运行新的进程。
4、最高响应时间优先算法
(1)算法思想:总是优先调度响应比最大的进程
(2)性能:先来先服务和最短优先算法的折中
周转时间 = 完成时间 - 到达时间
例:
5、轮转算法
(1)算法思想:
最早来自分时系统
将处理器的处理时间划分成一个一个时间片,就绪队列中的主进程轮流运行一个时间片,当时间片结束时,就强迫运行的进程让出处理器,该进程进入就绪队列,等待下一次调度。
(2)影响时间片设置的因素:
①:系统响应时间
②:就绪进程数目
③:计算机的处理能力
小结:时间片设置的太短,导致过多的进程切换,降低了处理器效率;而设得太长又可能引起过短的交互请求的响应时间变长。将时间片设为20—50ms通常是一个比较合理的折中。
6、最高优先级算法
(1)算法思想:为每个进程设立一个优先级,每次将处理器分配给具有最高优先级的就绪进程。
(2)可以保证紧迫性进程优先运行。
7、多级反馈队列算法
结合了先进先出、时间片轮转、可抢占式最高优先级调度算法。
(1)算法思想要点:
①:被调度队列的设置
②:在同一个队列内的调度原则
③:在不同调度队列之间的调度原则
④:进程优先级的调整原则
第五节:系统内核
内核的概念:
为了提高系统的效率,保护系统的关键部分不被破坏,一般把操作系统中提供支持系统运行的各种基本操作和基本功能的一组程序模块集中安排,形成一个操作系统的核心,称为系统核心或系统内核,简称内核。
内核本身不是进程,是系统进程和用户赖以活动的基础,一般内核常驻内存,操作系统其它部分则根据需要调进或调出内存。
内核的功能:
(1)中断处理程序
(2)进程同步与互斥
(3)进程调度
(4)进程控制与通信
(5)存储管理
(6)时钟管理
内核的各种功能通过执行原语操作来实现。
本章小结:
本章主要讲述了进程和线程的基本概念、进程控制原语、进程调度算法等内容,重点掌握内容如下:
1、程序的顺序执行及其特点
2、程序的并发执行及其特点
3、进程的定义、特征
4、进程的状态转换、重点三状态转换模型
第四章:进程同步与互斥
第一节:进程间相互作用
一、相关进程和无关进程
二、与时间有关的错误
第二节:进程的同步与互斥
一、进程的同步
二、进程的互斥
三、临界区
第三节:信号量及P、V操作
一、信号量
二、P、V操作
三、信号量与P、V的物理含义
四、用P、V操作实现进程之间的互斥
五、用P、V操作实现进程之间的同步
六、信号量及P、V操作小结
第四节:经典的进程同步问题
一、简单生产者——消费者问题
二、多个生产者——消费者问题
三、读者——写着问题
四、同步与互斥机制的综合应用
第五节:管程
一、管程的提出
二、管程的概念及组成
三、
第六节:进程同步
待续、、、、、、
自考《操作系统》总结(持续更新)相关推荐
- 操作系统(持续更新)
title: OS tags: 408 categories: 408 top: false OS 总述 操作系统的定义 操作系统(operating system,OS)是配置在计算机硬件上的第一层 ...
- 操作系统面试题(史上最全、持续更新)
尼恩面试宝典专题40:操作系统面试题(史上最全.持续更新) 本文版本说明:V28 <尼恩面试宝典>升级规划为: 后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩获取, 发送 ...
- 《操作系统真象还原》第4章 保护模式入门 ing... 持续更新
目录 文章目录 目录 概述 初见保护模式 代码 32push.S 全局描述符表 段描述符 GDT.LDT及选择子 GDT 选择子正式介绍 LDT 打开A20地址线 保护模式的开关,CR0寄存器的 PE ...
- Java 最常见的 10000+ 面试题及答案整理:持续更新
Java面试题以及答案整理[最新版]Java高级面试题大全(2021版),发现网上很多Java面试题都没有答案,所以花了很长时间搜集,本套Java面试题大全,汇总了大量经典的Java程序员面试题以及答 ...
- linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)
运维 - linux(ubuntu) 环境变量管理 (持续更新) 注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包. 一, 查看环境变量: 方法 1 ...
- Unity3D小功能 小技巧 小教程 小原理(持续更新...)
Unity3D小功能 小技巧 小教程 小原理(持续更新...) 1.Unity的.NET版本是2.0 按道理来说,C#能用的功能Unity也能用,但是Unity的.NET却不是最新版 要是用一些别的D ...
- native react ssh_React Native踩坑笔记(持续更新中...)
最近发现市场上对React Native开发人员的需求挺多的,自己就想学习一下React Native,多一门技术,好将来买个好价位.嘿嘿! 在学习React Native中碰到了不少坑,再次记录下来 ...
- 关于渗透的一些思路持续更新(自我理解)
关于渗透的一些思路持续更新(自我理解) 先回忆一下 准确的是17年才接触到渗透以及ddos 其他hei产东西就不介绍了 接触的自我感觉有点迟 从最开始我也是从阿D明小子那些很傻瓜化的软件走过来的 但是 ...
- 常见的技术类英文字母含义总结,Localhost、SDK、URL 等(持续更新中)
文章目录 前言 一.Localhost 二.SDK 三.URL 总结 前言 我们在开发中经常会遇到一些技术类的英文单词,初遇可能会有些陌生,在此为了方便大家,同时便于自己查看一些名词,就做了一个小结, ...
- redis多种模式部署(持续更新)
文章目录 1 部署说明 2 单机模式 2.1 下载 2.2 安装 2.3 命令说明 2.4 启动 2.5 设置密码 2.6 访问带密码的redis 3 主从模式 3 哨兵模式 4 主从模式 1 部署说 ...
最新文章
- Elasticsearch yellow 意味着主分片可用,副本不可用
- 融合视频目标检测与单目标、多目标跟踪,港中文开源一体化视频感知平台 MMTracking...
- Nat. Mach. Intell. | FFPred-GAN:“以假乱真“—基于GAN创建合成特征样本改进蛋白质功能预测...
- 如何在 Ubuntu Linux 16.04上安装开源的 Discourse 论坛
- Java开发面试技巧,如何设计一个优雅的RESTFUL的接口
- linux下查看机器配置
- ExtJs ComboBox 在IE 下 自动完成功能无效的解决方案
- python lncrna_lncRNA分析
- Compilation Error 解决方案汇集
- 外贸网站建设(转自xmfish)
- DisplayLink 安装错误
- 计算2+22+222
- Arcgis重分类无法赋新值为小数
- 对_stdcall 的理解 (转)
- LEADTOOLS 文档 SDK,创建以下任何对象
- Android学习日记(yzy): Accessibility辅助功能
- Python面向对象子类中重用父类的属性
- win10鼠标右键问题,导致桌面刷新重启,资源管理器explorer重启,文件夹闪退,应用管理员模式无法运行等等
- 同构和异构关系图-行人re_ID
- 合数(数论基础概念)
热门文章
- CCS如何打开CC32XX的例程
- 【校招】面试_华为_通用软件工程师_二面
- 微信官方大规模封号! 理由是...
- 医疗设备远程监控 5G千兆工业网关智慧医疗
- 推动绿色节能, APC再度“转动”地球日
- js实现一个获取url参数的方法-前端面试题
- python导出excel,随机生成姓名、手机号
- manjaro软件源报错 不停看到错误 PackageName: signature from User email@archlinux.org is invalid 的几种解决方法...
- 随州天气预报软件测试,随州天气预报15天
- @ConfigurationProperties 注解的使用