1.操作系统引论
操作系统:配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充; 为用户和应用程序提供一个简单接口。
定义:一组能有效组织和管理计算机硬件和软件的资源,合理地对各类作业进行调度,方便用户使用的程序的集合。
操作系统的目标:
1.方便性:就是将程序语言转为机器语言,使计算机变得易学易用
2.有效性:提高系统资源的利用率;提高系统的吞吐率
(以上两点是最重要目标)
3.可扩充性:不断发展
4.开放性:遵循世界标准
操作系统用处:
1.用户与计算机硬件系统接口:通过系统调用,命令,图标窗口
2.计算机系统资源管理者:四大资源(处理机,存储器,I/O设备,文件)
3.对计算机资源的抽象:就是在用户和计算机资源中间再加一层软件层,实现对计算机资源抽象
操作系统三类型:
1.批处理系统
单道批处理系统:当内存中一个作业完成,则调入第二个作业,但是每次只能有一个作业在内存中进行
多道批处理系统:就是在上一个程序I/O操作,此时cpu空闲的情况下,调度下一程序执行,从而让CPU始终处于运行状态。
2.分时系统:使用户能够及时地接收到计算机的应答,且多个用户可以同时通过自己的终端,以交互方式来与计算机交互。通过:1.作业直接进入内存 2.时间片轮转法
3.实时系统:更加注重及时,在截止时间之前做完,将时间作为关键参数,在规定时间内完成对该事情的处理,控制所有实时系统协调运行。
总结:操作系统三大类型:批处理系统,分时系统,实时系统
操作系统四大特性:
1.并发:与并行不同,并行是同时进行;而并发是在同一时间间隔内进行,也就是宏观上同时进行,微观上仍然是异步进行的。通过引入进程实现。
2.共享(最基本特性):指系统中的资源可供多个并发执行的进程共同使用。分为互斥共享方式(比如打印机这种)和同时访问方式(也就是并发访问)
所以以上两种并发和共享,是相辅相成的,有了并发才能共享,有共享才能并发
3.虚拟:通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能。包括时分复用技术(就是一个功能的空闲又去为别人服务)和空分复用技术(虚拟存储)
4.异步:由于进程的行动受限于资源,所以肯定是“停停走走”的,所以进程是以人们不可预知的速度向前推进,即异步性。
操作系统五大功能:
处理机管理、存储器管理、设备管理、文件管理、操作系统与用户之间的接口
2.进程
并发执行特征:间断性; 失去封闭性,因为资源会共享,从而失去封闭性; 不可再现性,多次执行程序得到的结果可能不同。
PCB:进程控制块
进程实体:程序段,相关数据段和PCB构成
进程定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程与程序区别:
1.动态性:进程是动态的,创建产生,撤销而消亡,而程序是一直存在的
2.并发性: 进程实体同存于内存中,多个进程可以同时运行
3.独立性:进程实体是一个系统进行资源分配和调度的独立单位
4.异步性:进程按不可预知各自独立的速度向前运行
进程三种基本状态:
就绪,执行,阻塞
再加上创建和终止状态
最后还加上挂起,多了挂起就绪和挂起阻塞,挂起就是在原本的基础上,暂停一切操作,并且此时不接受任何调度,只有当激活才可以再次进行调度
进程创建:1.申请空白PCB 2.为新进程分配其运行资源 3.初始化进程控制块PCB 4.将新进程插入就绪队列
进程终止:注意当进程终止,其子孙进程都要终止,而且该进程的资源要归还给父进程。
进程的阻塞:由于等待资源,数据,操作,任务而自动将自身停止执行的行为。block原语。
通过wakeup唤醒为就绪状态。
进程挂起:suspend,通过active激活
进程控制块PCB定义:
记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。1.已成为进程存在于系统中唯一标志。2.实现间断性运行方式,就是通过PCB保留运行时基本信息。 3.实现进程间的同步和通信
进程PCB中信息:进程标识符;内部标识符;进程调度信息;进程控制信息
进程控制
进程控制由OS内核中的原语实现。
OS内核:与硬件紧密相关的模块,各种常用设备的驱动程序以及运行频率高的模块,将他们常驻内存。
目的:保护; 提高效率
功能:支撑功能(中断处理,时钟处理,原语操作),资源管理功能(进程管理,存储器管理,设备管理)
处理机状态:系统态和用户态
进程同步
进程同步:是对多个相关进程在执行次序上的协调,使并发执行的进程之间能按照一定规则,共享系统资源,使程序具有可再现性。
间接相互制约:就是通过临界资源相互制约
直接相互制约:就是相互合作关系从而相互直接制约
临界资源:就是像打印机这种在一个时间只能有一个进程调用
临界区:每个进程中访问临界资源的那段代码
同步机制遵循的规则:空闲让进,忙则等待,有限等待,让权等待。
信号量
整形信号量wait(S) 简称P操作,表示等待S资源,其执行完成就是使S资源-1; signal(S) 简称V操作,表示释放S资源,其执行完成就是s+1。
记录型信号量
AND型信号量,将进程需要的所有资源一次性全部分配给该进程,若有一个资源没有,那么都要等,这样可以避免死锁。
应用:
通过信号量实现互斥(多个进程)
在一个进程中在临界区使用wait(s)然后完成操作后再signal(s)释放资源,这样就实现了多个进程互斥使用资源s。
通过信号量实现前驱关系(多个进程)
首先把s初试化为0,要使A进程在B进程之前调用,就在A进程执行完需要的操作后再signal(s),在B进程执行前有wait(s),这样就实现了前驱。
管程:代表共享资源的数据结构以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序共同构成了一个操作系统的资源管理模块,就是一组操作为一个管程。
对于经典同步问题思考:
一个临界资源我们可以通过s来表示,那么显然当一个进程使用它时要P操作,使用完要V操作。
但是我们容易漏掉一种情况,就是一个数字需要记录有多少个进程同时使用时,当改变这个数字,我们为了防止多个进程同时改变,也要在改变这个数字的前后加上PV操作,防止同时改变这个数字造成不可预估的后果。
进程通信:
指进程之间的信息交换。
进程通信类型:
共享存储器系统:相互通信通过共享存储区或共享数据结构
管道通信系统: