操作系统与进程调度
操作系统
1.操作系统的概念:
操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。它在计算机系统中占据了重要地位,汇编程序、编译程序、数据库管理系统等系统软件,都依赖于操作系统的支持,需要取得操作系统的服务。
通俗来讲,OS是管理,协调,分配者。主要研究如何高效公平低耗地进行资源的分配、协调工作以及在其中遇到的种种问题。
2.操作系统的主要功能:
1.进程管理:
①进程控制:创建和撤销进程,分配资源、资源回收,控制进程运行过程中的状态转换。
②进程同步:多进程运行进行协调–进程互斥(临界资源上锁)、进程同步。
③进程通信:实现相互合作之间的进程的信息交换。
④调度:作业调度,进程调度。
2.内存管理:
为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。
①内存分配:静态分配、动态分配。
②内存保护:各在其内存空间内运行(设两界限寄存器),互不干扰。
③地址映射:地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
④内存扩充:借助于虚拟存储技术,逻辑上扩充内存容量。
3.设备管理:
完成用户进程提出的I/O请求,为其分配所需I/O设备,完成指定I/O操作;提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
①缓冲管理
②设备分配
③设备处理:设备驱动程序,用于实现CPU和设备控制器之间的通信。
4.文件管理:
对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。
①文件存储空间的管理:为文件分配合理外存空间,文件存储空间的使用情况。
②目录管理:为每个文件建立一个目录项。
③文件的读/写管理和保护
5.提供操作系统与用户之间的接口:
用户接口包括三类:联机用户接口、脱口用户接口和程序用户接口;
3.程序与进程:
3.1 程序与进程的概念:
程序:完成特定任务的一系列指令集合
程序=代码段+数据段
进程:进行就是正在进行中的程序
1、用户角度: 进程是程序的一次动态执行过程
2、操作系统: 进程是操作系统分配资源的基本单位,也是最小实体。
3.2 程序与进程的区别
程序是静态的,进程是动态的,程序是存储在某种介质上的二进制代码,进程对应了程序的执行过程,系统不需要为一个不执行的程序创建进程,一旦进程被创建,就处于不断变化的动态过程中,对应了一个不断变化的上下文环境。
程序是永久的,进程是暂时存在的。程序的永久性是相对于进程而言的,只要不去删除它,它可以永久的存储在介质当中。
3.3 进程与程序的联系
进程是程序的一次执行,而进程总是对应至少一个特定的程序。一个程序可以对应多个进程,同一个程序可以在不同的数据集合上运行,因而构成若干个不同的进程。几个进程能并发地执行相同的程序代码,而同一个进程能顺序地执行几个程序。
关于进程和程序的区别,《现代操作系统》中用了一个比喻形象说明:一位有一手好厨艺的计算机科学家正在为他的女儿烘制生日蛋糕。他有做生日蛋糕的食谱,厨房里有所需要的原料,在这个比喻中,做蛋糕的食谱就是程序(即用适当形式描述的算法),计算机科学家就是处理机(CPU),而做蛋糕的各种原料就是输入数据。进程就是厨师阅读食谱,取来各种原料以及烘制蛋糕等一系列动作的总和。
4.操作系统的进程调度:
4.1 进程的特征:
- 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的。
- 并发性:任何进程都可以同其他进程一起并发执行。
- 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
- 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
- 结构性:进程由程序段,数据段和PCB组成
4.2 进程的三态:
三态之间的转换:
就绪 → 执行:为就绪线程分配CPU即可变为执行状态"
执行 → 就绪:正在执行的线程由于时间片用完被剥夺CPU暂停执行,就变为就绪状态
执行 → 阻塞:由于发生某事件,使正在执行的线程受阻,无法执行,则由执行变为阻塞
4.3 进程调度的时机:
第一,创建新进程的时候,到底是让父进程运行还是让子进程运行,这就需要进行进程调度。
第二,当有进程退出时,需要进行进程调度,从其他的就绪状态的进程集合中挑选一个运行。
第三,当有进程因为I/O、或者信号量或者别的什么原因阻塞时,需要进行进程调度。
第四,当I/O中断发生,需要做进程调度。
第五,假设硬件始终提供50-60Hz频率的时钟中断,那么,在每个时钟中断,或者每第k个时钟中断需要进行进程调度。
4.4进程调度的算法:
批处理系统常用调度算法:
①、先来先服务
②、最短作业优先
③、最短剩余时间优先
④、响应比最高者优先
分时系统调度算法:
①、轮转调度
②、优先级调度
③、多级队列调度
④、彩票调度
实时系统调度算法:
①、单比率调度
②、限期调度
③、最少裕度法