操作系统—处理机管理
操作系统的基本功能
操作系统的基本功能在我们日常使用电脑或手机等电子设备时,操作系统就如同一个默默工作的大管家,管理着设备的各项资源和任务,让我们能够顺利地进行各种操作。
那么,操作系统到底有哪些基本功能呢?首先,操作系统具备处理机管理的功能。
简单来说,处理机就像是设备的“大脑”,负责执行各种指令和计算任务。
操作系统需要合理地分配处理机的时间,确保不同的程序和任务能够公平、高效地得到执行。
它会根据任务的优先级、等待时间等因素,来决定哪个任务先使用处理机,哪个任务稍后进行。
这样可以避免某些任务长时间占用处理机,导致其他任务无法及时响应,从而提高了系统的整体性能和效率。
其次,操作系统要做好存储器管理。
存储器是用来存储数据和程序的地方,就像是一个巨大的仓库。
操作系统需要合理地分配和管理这个仓库的空间,确保程序和数据能够正确地存储和读取。
它会将存储器划分成不同的区域,为每个程序分配适当的存储空间,并在程序运行结束后及时回收这些空间,以便再次利用。
同时,操作系统还要负责数据的存储和保护,防止数据丢失或被非法篡改。
文件管理也是操作系统的重要功能之一。
我们在设备中存储了各种各样的文件,如文档、图片、视频等。
操作系统需要对这些文件进行有效的组织和管理,让我们能够方便地查找、读取和修改文件。
它会建立文件目录结构,记录文件的名称、位置、大小、创建时间等信息。
通过文件管理系统,我们可以对文件进行创建、删除、复制、移动等操作,还可以设置文件的访问权限,保护个人隐私和重要数据的安全。
设备管理也是操作系统不可忽视的一项功能。
设备包括输入设备(如键盘、鼠标、扫描仪等)和输出设备(如显示器、打印机、扬声器等)。
操作系统要负责管理这些设备的驱动程序,确保设备能够正常工作。
当我们连接新的设备时,操作系统会自动识别并安装相应的驱动程序,让设备能够与系统无缝对接。
同时,操作系统还要合理地分配设备资源,避免多个程序同时使用设备时出现冲突。
另外,操作系统还承担着作业管理的任务。
五章处理机管理CPUScheduling
调度期Dispatch Latency
事件
响应事件
中断 处理
调度周期
调度
时实进 程执行
对实时系统的要求
提供必要的调度信息
进程的就绪时间 进程开始执行截止时间和完成执行截止时间 进程处理所需时间 进程的资源要求 进程优先级
调度方式 具有快速响应外部中断的能力
实时调度算法
Real-Time Scheduling
2.多处理机操作系统的分类
本节所介绍的多处理机操作系统是指那些用来并行执 行用户的几个程序,以提高系统的吞吐率;或 并行操作 以提高系统可靠性的多处理操作系统。这种系统由共享公 共内存和外设的n(n>1)个 CPU组成。
从概念上说,在多处理机系统中的各进程的行为与在 单机系统下的行为相同。因此,对多处理机操作系统的要 求与对多道程序的批处理系统没有太多的区别。但是,多 处理环境下,进程可在各处理机间进行透明迁移,从而, 由进程上下文切换等带来的系统开销将使得多处理机操作 系统的复杂度大大增加。另外,由于多处理机系统并行地 执行用户的几个程序(进程),这又带来了多处理机条件 下的并发执行问题。
Performance
q large FIFO q small q must be large with respect to context switch,
otherwise overhead is too high.
Example of RR with Time Slice= 1 时间片为1时的例子
If there are n processes in the ready queue and the time slice is q, then each process gets 1/n of the CPU time in chunks of at most q time units at once. No process waits more than (n-1)q time units.
操作系统6处理机管理习题
第六章处理器管理练习题(一)单项选择题1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。
A.并发执行B.顺序执行C.并行执行D.同时执行2.引入多道程序设计技术后,处理器的利用率( )。
A.有所改善B.极大地提高C.降低了D.无变化,仅使程序执行方便3.计算机系统采用多道程序设计技术后,()。
A.缩短了每个程序的执行时间B.系统效率随并行工作道数成比例增长C.提高了系统效率D.使用设备时不会发生冲突4.进程是( )。
A.一个系统软件B.与程序概念等效C.存放在内存中的程序D.执行中的程序5.进程的( )和并发性是两个很重要的属性。
A.动态性 B.静态性C.易用性D.顺序性6.( )是完成操作系统功能的进程。
A.用户进程B.系统进程C.并发进程D.编译进程7.可再入程序必须是纯代码,在执行中( )。
A.可以随意改变B.计算结果相同C.自身不改变D.要求输入相同的数据8.已经获得除( )以外所有运行所需资源的进程处于就绪状态。
A主存储器B.打印机C.CPU D.磁盘空间9.在一个单处理器系统中,处于运行态的进程( )。
A.可以有多个B.不能被打断C.只有一个D.不能请求系统调用10.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。
A.顺序执行B.同时执行C.并行执行D.并发执行11.操作系统根据( )控制和管理进程,它是进程存在的标志。
A.程序状态字B.进程控制块C.中断寄存器D.中断装置12.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。
A.运行队列B.后备队列C.等待队列D.就绪队列13.用户从终端上输入一条命令,即产生了( )。
A.程序性中断事件B.外部中断事件C.输入输出中断事件D.自愿性中断事件14.( )的断点是确定的。
A.硬件故障中断B.自愿性中断C.程序性中断D.外部中断15.自愿性中断事件是由( )引起的。
处理机管理文件管理作业管理
处理机管理文件管理作业管理计算机是现代社会中不可或缺的工具,而计算机中最重要的组成部分就是处理器。
处理器是计算机中的核心,负责执行各种指令,实现各种计算、操作和运行。
处理器的管理对于计算机的性能和效果至关重要。
同时,文件管理和作业管理也是计算机系统中不可或缺的部分,它们负责对计算机中的文件和作业进行管理和维护,确保计算机的正常运行。
处理机管理处理机管理是计算机系统中最重要的一部分,它负责对处理器进行管理和调度。
处理器的管理包括对处理器的分配、调度和协调,以及对处理器的性能和效率进行优化和提升。
处理器的调度对于计算机系统的性能和效果影响很大,因此处理器的管理是计算机系统中必不可少的部分。
文件管理文件管理是计算机系统中的重要组成部分,它负责对计算机中的文件进行管理和维护。
文件管理包括对文件的创建、存储、访问和删除等操作,同时还包括对文件进行备份和恢复等操作。
文件管理对于计算机系统中的数据安全和数据完整性至关重要,因此它是计算机系统中必不可少的部分。
作业管理作业管理是计算机系统中的重要组成部分,它负责对计算机中的作业进行管理和维护。
作业管理包括对作业的提交、调度、执行和控制等操作,同时还包括对作业进行监控和调整等操作。
作业管理对于计算机系统中的任务执行和任务效率至关重要,因此它是计算机系统中必不可少的部分。
处理机管理、文件管理和作业管理是计算机系统中三个重要的组成部分,它们共同构成了计算机系统的基础。
处理机管理负责对处理器进行管理和调度,文件管理负责对计算机中的文件进行管理和维护,作业管理负责对计算机中的作业进行管理和维护。
这三个部分共同构成了计算机系统的框架,确保计算机系统的正常运行和高效运行。
在处理机管理、文件管理和作业管理中,需要注意各种问题。
例如,在处理机管理中,需要注意处理器的分配和调度,以及处理器的利用率和效率等问题;在文件管理中,需要注意文件的存储和访问权限,以及文件的备份和恢复等问题;在作业管理中,需要注意作业的提交和调度,以及作业的执行和效率等问题。
处理机管理有哪些主要功能
1、处理机管理有哪些主要功能?它们的主要任务是什么?答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。
进程同步:为多个进程(含线程)的运行进行协调。
通信:用来实现在相互合作的进程之间的信息交换。
处理机调度:(1)作业调度。
从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源(首选是分配内存)。
(2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行。
2、前趋图是一个有向无循环图,记为DAG,用于描述进程之间执行的前后关系。
3、试说明PCB 的作用,为什么说PCB 是进程存在的惟一标志?PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
OS是根据PCB对并发执行的进程进行控制和管理4、试说明进程在三个基本状态之间转换的典型原因1)就绪状态→执行状态:进程分配到CPU资源2)执行状态→就绪状态:时间片用完3)执行状态→阻塞状态:I/O请求4)阻塞状态→就绪状态:I/O完5、为什么要在OS 中引入线程?在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,提高CPU的利用率。
进程是分配资源的基本单位,而线程则是系统调度的基本单位。
6、试说明线程具有哪些属性1)轻型实体2)独立调度和分派的基本单位3)可并发执行4)共享进程资7、试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较1)调度性。
线程在OS 中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
2)并发性。
进程可以并发执行,一个进程的多个线程也可并发执行。
3)拥有资源。
进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本身基本不拥有系统资源,但可以访问隶属进程的资源。
操作系统五大管理功能
操作系统五大管理功能操作系统的五大管理功能是基本功能,也是重要功能。
下面由店铺为大家整理了操作系统的五大管理功能的相关知识,希望对大家有帮助!操作系统五大管理功能系统是管理和控制计算机系统中的所有硬件、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。
计算机系统的主要硬件资源有处理器、存储器、外部设备,软件资源以文件形式存在外存储器上。
因此从资源管理和用户接口的观点上看,操作系统具有处理机管理、存储管理、设备管理、文件管理和提供用户接口的功能。
操作系统五大管理功能之1.处理机管理计算机系统中处理机是最宝贵的系统资源,处理机管理的目的是要合理地按的时间,以保证多个作业能顺利完成并且尽量提高CPU的效率,使用户等待的时间最少。
操作系统对处理机管理策略不同,提供作业处理方式也就不同,例如,批处理方式、分时处理方式和实时处理方式。
操作系统五大管理功能之2.存储管理存储管理的主要工作是对内存储器进行合理分配、有效保护和扩充。
操作系统五大管理功能之3.设备管理当用户程序要使用外部设备时,设备管理控制(或调用)驱动程序使外部设备工作,并随时对该设备进行监控,处理外部设备的中断请求等。
操作系统五大管理功能之4.文件系统管理以上三种管理都是针对计算机的硬件资源的管理。
文件系统管理则是对软件资源的管理。
为了管理庞大的系统软件资源及用户提供的程序和数据,操作系统将它们组织成文件的形式,操作系统对软件的管理实际上是对文件系统的管理。
操作系统五大管理功能之5.用户接口计算机用户与计算机的交流是通过操作系统的用户接口(或称用户界面)完成的。
操作系统为用户提供的接口有两种,一是操作界面;二是操作系统的功能服务界面。
操作系统五大管理功能将本文的Word文档下载到电脑,方便收藏和打印推荐度:点击下载文档文档为doc格式。
操作系统第二章
当一进程所期待的某一事件尚未出现时,该进 程调用阻塞原语把自己阻塞起来,阻塞原语的 操作过程如下:由于进程正处于运行状态,故 应中断处理机,把CPU状态保护到PCB中, 停 止运行该进程。然后把“活跃阻塞”赋予该进 程,并把它插入到该事件的等待队列中,再从 活跃就绪队列中按一定算法选取一进程投入运 行。
进程控制是OS内核实现的。
2.3.1 内核
一、操作系统的层次结构
2.3
进 程 控 制
1、引入:方便设计与维护,将操作系统分为不同层次,
将操作系统的功能设臵在不同的层次中。 2、原则: 按调用关系分层,只有外层能调用内层; 与硬件关系密切的放在最里层;例如进程调度; 与用户关系密切的放在最外层;
2.2.1
进程的定义和特征
一、引入:为描述并发下程序的执行情况
2.2
进 程 的 描 述
二、定义:进程是程序的一次执行过程,是系统进行 资源分配和处理机调度的一个独立单位。 三、特征:
动态性 并发性 独立性 异步性
结构特性:进程=程序段+数据段+PCB
2.2.1
进程的定义和特征
四、进程和程序的区别与联系
1、就绪状态(ready):等处理机 2、执行状态(running):用处理机 3、阻塞状态(blocked):等事件
2.2.2
进程状态及其演变
时间片完
二、基本状态演变图
2.2
进 程 的 描 述
创建
就绪 调度 事件发生 (I/O完成) 阻塞
运行
完成 撤消
等事件 (I/O请求)
2.2.2
1、引入
进程状态及其演变
2.3.1 内核
二、内核:
2.3
进 程 控 制
处理机管理
➢处理器状态
• 中央处理器怎么知道当前是操作系统还 是一般用户程序在运行呢?
• 处理器状态标志和设置处理器成不同状 态: 管理状态(特权状态、系统模式、 特态或管态)和用户状态(目标状态、 用户模式、常态或目态)
➢程序状态字寄存器
• 通常操作系统都引入程序状态字PSW(Program Status Word)来区别不同的处理器工作状态
平均作业周转时间 T = (Σti) / n
作业带权周转时间和平均作业带权周转时间
• 如果作业i的周转时间为ti,所需运行 时间为tk,则称wi=ti /tk为该作业的带 权周转时间。
• ti是等待时间与运行时间之和,故带权 周转时间总大于1。
平均作业带权周转时间W = (Σwi) / n
2.4 批处理作业的管理与调度
低级调度基本功能: (1)记住进程的状态。 (2)决定某个进程什么时候获得处理器, 以及占用多长时间。 (3)把处理器分配给进程。 (4)收回处理器。 低级调度基本方式:非抢占式、抢占式、 折衷方式
➢ 低级调度算法
1﹑先来先服务算法 2﹑时间片轮转调度算法
可防止那些很少使用外围设备的进程过长的占用处理器 而使得要使用外围设备的那些进程没有机会去启动外围设备。
先进入系统的作业优先被挑选。 算法容易实现,效率不高,只顾及作业等候
时间,没考虑作业要求服务时间的长短。不利于 短作业而优待了长作业 。
2 ﹑最短作业优先算法(SJF)
SJF算法以进入系统的作业所要求的CPU时间为标准, 总选取估计计算时间最短的作业投入运行。
算法易于实现,效率不高,主要弱点是忽视了作业 等待时间,会出现饥饿现象。SJF的平均作业周转 时间比FCFS要小,故它的调度性能比FCFS好。
操作系统第二章复习题
第二章处理机管理——死锁——单选题1.在多道程序系统中,可能发生一种危险――死锁。
产生死锁的原因是由于____。
A.资源竞争,进程推进顺序非法B.系统资源不足,程序推进顺序非法C.系统资源不足,各进程之间竞争资源D.资源竞争,并行进程同时执行2.在为多道程序所提供的可共享的系统资源不足时,可能出现死锁。
但是,不适当的___也可能产生死锁。
A.进程优先权B.资源的线形分配C.进程推进顺序D.分配队列优先权3.当进程数大于资源数时,进程竞争资源_____会产生死锁。
4.产生死锁的四个必要条件是互斥、不剥夺、环路等待和____。
A.请求与阻塞B.请求与释放C.释放与阻塞D.保持与请求5.产生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏_____条件是不太实际的。
A.互斥B.不剥夺C.环路等待D.保持与请求6.为了防止死锁的产生,在进程所需要的全部资源被满足之前,不进入就绪状态,这是否定了7.在预防死锁发生的方法中,当进程申请资源得不到满足时,必须释放它已占有的全部其它资源,这是破坏了死锁必要条件中的_____。
8.在预防死锁发生的方法中,将系统资源按类型线型排序,并赋予不同的序号。
进程必须严格按资源序号的递增次序提出申请。
这是破坏了死锁必要条件中的____。
A.互斥条件B.不剥夺条件C.环路等待条件D.请求与保持条件9.系统可用资源3份,P1进程正占用5份,还需要5份;P2进程正占用2份,还需要3份;P3进程正占用2份,还需要7份。
该状态是____。
A.安全的B.不安全的10.系统可用资源2份,P1进程正占用5份,还需要5份;P2进程正占用2份,还需要2份;P3进程正占用3份,还需要6份。
该状态是___。
A.安全的B.不安全的11.系统中有2份共享资源,有3个并行进程,每个进程都需要该共享资源2份,则在这3个进程之间_____。
12.某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源是_____。
操作系统的主要功能有处理机管理
操作系统的主要功能——处理机管理引言操作系统是计算机系统中的核心软件,它负责管理计算机硬件资源和提供用户与计算机系统交互的接口。
操作系统的主要功能之一是处理机管理。
处理机管理涉及到对计算机的CPU(中央处理器)的合理分配和调度,以提高计算机系统的整体性能和效率。
本文将详细介绍处理机管理的主要功能以及相关的概念和算法。
处理机管理的基本概念进程一个进程可以看做是正在执行的程序的实例。
它包括程序的指令、数据和相关的执行状态信息。
操作系统通过进程的创建、撤销、控制和同步,来管理计算机中的多个任务。
线程线程是进程中的一个执行单元,是进程中的实际工作者。
一个进程可以包含多个线程,线程共享进程的资源和上下文信息。
操作系统通过线程的创建、调度和同步,来提高计算机系统的并发度和响应能力。
进程调度进程调度是指按照某种算法从就绪队列中选择一个进程,使之占用处理机运行。
常用的调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转、优先级调度等。
线程调度线程调度是指操作系统决定何时将处理机切换到另一个线程上运行的过程。
线程调度算法旨在确保公平性、提高响应时间、最大程度地利用处理机资源等。
上下文切换当操作系统将处理机从一个进程或线程切换到另一个进程或线程时,需要保存当前进程或线程的上下文(包括程序计数器、寄存器等)以及加载下一个进程或线程的上下文。
这个过程就是上下文切换。
处理机管理的主要功能进程与线程管理操作系统负责进程和线程的创建、撤销和控制。
它为每一个进程和线程分配所需的资源,并提供进程和线程间的通信机制(如共享内存、消息传递等)。
操作系统还负责确保进程和线程的运行顺序和优先级,以充分利用系统资源。
进程和线程调度操作系统通过进程和线程调度算法来决定处理机分配给哪个进程或线程运行。
这些调度算法旨在提高系统的性能和响应能力,保证不同进程和线程之间的公平性。
上下文切换管理上下文切换是切换进程或线程执行所需的关键操作。
操作系统的主要功能包括处理机管理存储管理
操作系统的主要功能包括处理机管理和存储管理1. 引言操作系统是计算机系统中必不可少的核心软件之一,它主要负责管理计算机硬件资源以及为应用程序提供一个良好的运行环境。
操作系统具有多项重要功能,其中最重要的包括处理机管理和存储管理。
本文将详细介绍这两个功能,并探讨它们在操作系统中的作用。
2. 处理机管理处理机管理是操作系统的一项重要功能,它负责对计算机的CPU资源进行有效地调度和管理,以确保系统运行的高效性和公平性。
2.1 进程调度进程调度是处理机管理的核心内容之一。
当多个应用程序同时运行时,操作系统要合理地分配CPU的执行时间,以确保每个应用程序都能得到公平的处理器时间片。
常见的调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转(RR)等。
2.2 进程同步与互斥在操作系统中,可能会出现多个进程同时访问共享资源的情况,为了避免出现竞争条件和死锁等问题,操作系统需要提供进程同步与互斥的机制。
常用的同步和互斥方法包括信号量、互斥锁等。
2.3 进程通信操作系统还负责为不同的进程提供通信机制,以便它们能够进行有效的信息交换和共享。
常见的进程通信方式包括管道、消息队列、共享内存等。
3. 存储管理存储管理是操作系统的另一个重要功能,它负责对计算机的内存资源进行有效地分配和管理,以确保应用程序能够正常运行并充分利用内存空间。
3.1 内存分配操作系统需要分配和回收内存空间,以满足不同应用程序的需要。
常见的内存分配方式包括连续分配、非连续分配等。
3.2 内存保护与地址转换操作系统需要确保不同应用程序之间的内存空间是隔离的,以防止一个应用程序对其他应用程序的内存造成破坏。
此外,操作系统还负责将逻辑地址转换为物理地址,以实现有效的内存访问。
3.3 虚拟存储虚拟存储是现代操作系统的重要特性之一,它允许应用程序访问比实际物理内存更大的地址空间。
操作系统通过使用虚拟内存技术,将不常用的内存页面从内存中换出到磁盘上,以释放内存空间给其他应用程序使用。
操作系统的功能
操作系统
设备驱动
ROM BIOS初始化
MS-DOS操作系统结构图
1.2.2 层次结构 层次结构的操作系统是模块化的,就是将操作系统分成许多层, 每一层都是在它的下一层模块的基础上实现。 • 最底层是硬件,最上层是用户接口。 • 容易扩充系统的功能。 • 各层功能的实现、调试等都是相对独立的。 层次结构操作系统如下图所示。
1.文件管理要解决的问题 • 避免磁盘文件的混乱或遭受破坏。 • 实现信息的共享,对文件进行保密和保护。 2.文件管理的任务 创建和删除文件,创建和删除目录,文件的备份,与文件和目录 有关的操作等。
3.文件存储空间的管理 对文件存储空间的分配和回收。
4.目录管理 对目录的创建和删除,对目录的组织以及实现对文件的按名存取 、查询和检索。
• 将参数放在堆栈中,再由操作系统弹出堆栈使用它们。
1.1.6 操作系统的服务程序
操作系统的服务程序能解决用户使用计算机所要解决的大部 分问题。
这些服务程序包括:文件管理,文件修改,状态信息,程序 设计语言支持,程序的装入和执行,通信等。
其中最重要的是操作系统的命令解释程序,命令解释程序的 主要功能是执行用户指定的系统命令。
4.信息管理与保存
设置和获取系统的时间、日期等,设置和获取进程、文件和 设备的属性参数。
5.通信服务
创建和删除通信连接,发送和接收消息,传送信息状态,远 程设备访问等。
6.系统调用的参数传递给操作系统的方式: • 将参数放在寄存器中; • 将参数放在内存中的参数表中,而将参数表的地址放在寄 存器中;
5.文件的读写和存取控制 • 系统根据用户指定的文件名对文件进行读写操作。 •对文件的存取控制主要是防止系统中的文件被非法窃取和破坏。 系统中采用多级保护的设施来实现对文件的保护的。
操作系统原理课件-第九讲处理机管理
New
Ready Activate Suspend
Suspend
Ready
Timeout Running Release
Event Occurs Event Occurs
Blocked Suspend
可见,采用短作业优先调度算法可获得最小平均作业周转时间
练习
假定有四道作业,它们的进入时间和运行时间在下表中给出:
作业号
1 2 3 4
进入时间(时)
10:00 10:10 10:20 10:30
运行时间(分钟)
40 60 30 20
在单道程序环境下,分别采用FCFS和SJF算法,试说明他们的 调度顺序及平均周转时间
从OS类型:批处理、分时、实时、多处理机调度 从调度层次:高级调度、低级调度、中级调度
(1)高级调度 作业调度 long-term scheduling
• Determines which programs are admitted to the system for processing • Controls the degree of multiprogramming • More processes, smaller percentage of time each process is executed
3) 优先权调度算法(Priority Scheduling)
High Priority First——HPF
为照顾紧迫型作业的执行而引入,分为非 抢先式和抢先式。
静态优先权 动态优先权
静态优先权
优先权在创建进程时就确定,直到进程终止前都不改变,通 常是一个整数。
处理机管理的主要功能
设备管理
主要任务:完成用户提出的I/O请求,为用户分配I/O 设备,提高CPU和I/O设备的利用率。 缓冲管理:管理好各类型的缓冲区,以缓和CPU和I/O 设备速度不匹配的矛盾 设备分配:根据用户的I/O请求,为之分配其所需的设 备。 设备处理:基本任务是实现CPU和设备之间的通信。 虚拟设备:把每次只允许一个进程使用的物理设备变 换为多个对应的逻辑设备,提高了设备的利用率,使 每个用户感觉自己在独占该设备。
1.2操作系统的形成和发展
计算机发展分为四个阶段: 1946~50年代末:第一代,电子管时代 50年代末~60年代中:第二代,晶体管时代 60年代中~70年代中:第三代:集成电路时代 70年代中期~至今:第四代:大规模、超大规模集成 电路时代
手工操作阶段(第一代电子计算机)
计算速度慢(几千次每秒),没有操作系统甚至没有任何软件 用户独占计算机,完全手工操作 2002年8月30日,我国联想集团退出“深腾”超级计算机,运算速度可达1.027 万亿次,达到目前 名超级计算机排行榜中的第 24位 取走纸带 纸带(卡片) 输入机 500 计算机 打印输出结果 就在前一周,日本研制成功演算速度每秒85.1万亿次杜超级计算机,称为目前 1个程序 计算机(一千次 /秒) 30分钟完成 手工卸下3分钟 世界上最快的计算机。 计算机(一万次/秒) 3分钟完成 手工卸下3分钟 于是出现了“早期的批处理”系统 早起批处理系统(第二代计算机) 把若干个作业合成一批,调入计算机执行,完成后再调入下一 批作业 早期的批处理: 联机批处理 脱机批处理
文件管理
主要任务:是对用户文件和系统文件进行管理,方便用户的 使用。 文件存储空间的管理:为每个文件分配必要的外存空间,提 高外存的利用率。(一般以盘块为基本分配单位,通常512字 节~4K字节) 目录管理:系统为每个文件建立一个目录项,目录项包含文 件名、文件属性、文件在磁盘上的物理位置。用户只需要提 供文件名,对文件进行存取。 文件的读、写管理:进行读写文件时,系统根据用户给出的 文件名去减缩文件目录,从中获得文件在外存中的位置,然 后利用文件读写指针,对文件进行读写,一旦读写完成便修 改读写指针,为下一次读写做准备。 文件的存取控制:
操作系统实验报告之处理机管理
试验一:时间:2013-11-29计算机实验机房2朱蓉蓉第一题:先来先服务算法#include<iostream>#include<string>#include<iomanip>using namespace std;struct PCB{string name;//进程名float ta;//进程到达时间float ts;//进程估计运行的时间float tb;//进程开始运行时间float tm;//进程仍需运行的时间float to;//进程完成的时间float rn;//进程运行的次数float totalTime;//周转时间double weightTotalTime;//带权周转时间(周转时间/估计运行时间)PCB *next;//定义指向下一个进程的指针};#define MAX_NUM 15int pronum;//定义进程数为pronumfloat total;//记录所有进程的总时间double weight;//记录所有进程的带权周转时间PCB *create(PCB *head);//创建进程队列void deal(PCB *head);//FCFS记录处理void sort(PCB *head);//将进程按到达的先后顺序排列void fcfsrun(PCB *head);//先来先服务算法PCB *create(PCB *head){PCB *p1,*p2;p1=p2=new PCB;head=p1;cout<<"请输入进程数:";cin>>pronum;for(int i=0;i<pronum;i++){p2=p1;p1=new PCB;p1->next=NULL;cout<<"请依次输入第"<<i+1<<"个进程的信息(进程名、到达时间、估计运行时间):";cin>>p1->name>>p1->ta>>p1->ts;p1->tm=p1->ts;p1->rn=1;p2->next=p1;}return head;}void sort(PCB *head)//将进程按到达的先后顺序排列{PCB *p,*q,*r,*s;if(head->next!=NULL){p=head->next->next;head->next->next=NULL;}while(p){q=p;p=p->next;r=head;s=head->next;while(s&&s->ta<=q->ta){r=s;s=s->next;}r->next=q;q->next=s;}}void deal(PCB *head)//FCFS记录处理{sort(head);PCB *p,*q;q=head->next;q->tb=q->ta;q->to=q->tb+q->ts;q->totalTime=q->to-q->ta;q->weightTotalTime=q->totalTime/(double)q->ts;total+=q->totalTime;weight+=q->weightTotalTime;p=q->next;while(p!=NULL){p->tb=q->to;p->to=p->tb+p->ts;p->totalTime=p->to-p->ta;p->weightTotalTime=p->totalTime/(double)p->ts;total+=p->totalTime;weight+=p->weightTotalTime;q=p;p=p->next;}}void fcfsrun(PCB *head)//先来先服务算法{deal(head);PCB *p,*q,*s;p=head->next;cout<<"进程执行顺序为:";while(p!=NULL){cout<<"--"<<p->name;p=p->next;}cout<<endl;cout<<"进程名提交时间开始时间结束时间周转时间带权周转时间\n";s=head->next;while(s!=NULL){cout<<setw(4)<<s->name<<setw(7)<<s->ta<<setw(10)<<s->tb<<setw(11)<<s->to<<setw(1 0)<<s->totalTime<<setw(10)<<s->weightTotalTime<<endl;s=s->next;}cout<<endl;cout<<" 平均周转时间:"<<total/(double)pronum<<endl;cout<<"平均带权周转时间:"<<weight/(double)pronum<<endl;cout<<"******************************************************"<<endl;total=0;weight=0;}void main(){cout<<"*E01114336-朱蓉蓉-先来先服务调度算法*"<<endl;PCB *head=NULL;head=create(head);fcfsrun(head);}第二题://优先级调度算法#include <stdio.h>#include <stdlib.h>#include <conio.h>#define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0struct pcb { /* 定义进程控制块PCB */char name[10];char state;int super;int ntime;int rtime;struct pcb* link;}*ready=NULL,*p;typedef struct pcb PCB;void sort() /* 建立对进程进行优先级排列函数*/ {PCB *first, *second;int insert=0;if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者,插入队首*/ {p->link=ready;ready=p;}else /* 进程比较优先级,插入适当的位置中*/{first=ready;second=first->link;while(second!=NULL){if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,*/{ /*插入到当前进程前面*/p->link=second;first->link=p;second=NULL;insert=1;}else /* 插入进程优先数最低,则插入到队尾*/{first=first->link;second=second->link;}}if(insert==0) first->link=p;}}void input() /* 建立进程控制块函数*/{int i,num;system("cls"); /*清屏*/printf("\n 请输入进程数: ");scanf("%d",&num);for(i=1;i<=num;i++){printf("\n 进程号No.%d:\n",i);p=getpch(PCB);printf("\n 输入进程名:");scanf("%s",p->name);printf("\n 输入进程优先数:");scanf("%d",&p->super);printf("\n 输入进程运行时间:");scanf("%d",&p->ntime);printf("\n");p->rtime=0;p->state='W';p->link=NULL;sort(); /* 调用sort函数*/}}int space(){int l=0;PCB* pr=ready;while(pr!=NULL){l++;pr=pr->link;}return(l);}void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/{printf("\n 进程名\t 状态\t 优先数\t 需要运行时间\t 已经运行时间\n"); printf("|%s\t",pr->name);printf("|%c\t",pr->state);printf("|%d\t",pr->super);printf("|%d\t\t",pr->ntime);printf("|%d\t",pr->rtime);printf("\n");}void check() /* 建立进程查看函数*/{PCB* pr;printf("\n **** 当前正在运行的进程是:\n"); /*显示当前运行进程*/ disp(p);pr=ready;printf("\n **** 当前就绪队列状态为:\n"); /*显示就绪队列状态*/while(pr!=NULL){disp(pr);pr=pr->link;}}void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/{printf("\n 进程[%s] 已完成.\n",p->name);free(p);}void running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ {(p->rtime)++;if(p->rtime==p->ntime)destroy(); /* 调用destroy函数*/else{(p->super)--;p->state='W';sort(); /*调用sort函数*/}}void main() /*主函数*/{int len,h=0;char ch;input();len=space();while((len!=0)&&(ready!=NULL)){ch=getchar();h++;printf("-----------------------------------------------------");printf("\n 现在是第%d次运行:\n",h);p=ready;ready=p->link;p->link=NULL;p->state='R';check();running();printf("\n 按任意键继续......\n"); }printf("\n\n 进程已经完成.\n"); }第三题:按时间片轮法调度#define N 10#include<stdio.h>#include<conio.h>typedef struct pcb {char pname[N];int runtime;int arrivetime;char state;struct pcb*next; }PCB;PCB head_input;PCB head_run;PCB *pcb_input;static char R='r',C='c';unsigned long current;void inputprocess();int readydata();int runprocess();int readyprocess();FILE * f;/*检查就绪队列并准备运行进程的函数*/ int readyprocess(){while(1){if(readydata()==0)return 1;elserunprocess();}}/*判断就绪队列是否为空的函数*/int readydata(){if(head_input.next==NULL){if(head_run.next==NULL)return 0;elsereturn 1;}PCB *p1,*p2,*p3;p1=head_run.next;p2=&head_run;while(p1!=NULL){p2=p1;p1=p2->next;}p1=p2;p3=head_input.next;p2=&head_input;while(p3!=NULL){if(((unsigned long)p3->arrivetime<=current)&&(p3->state==R)){printf("Time is %4d ; Process %s start,\n",\(current+500)/1000,p3->pname);fprintf(f,"Time is %4d ; Process %s start,\n",\(current+500)/1000,p3->pname);p2->next=p3->next;p3->next=p1->next;p1->next=p3;p3=p2;}p2=p3;p3=p3->next;}return 1;}int runprocess(){PCB *p1,*p2;if(head_run.next==NULL){current++;return 1;}else{p1=head_run.next;p2=&head_run;while(p1!=NULL){p1->runtime--;current++;if(p1->runtime<=0){printf("Time is %4d;Process %s end.\n",(current+500)/1000,p1->pname);fprintf(f,"Time is %4d;Process %s end.\n",(current+500)/1000,p1->pname);p1->state=C;p2->next=p1->next;delete p1;p1=NULL;}else{p2=p1;p1=p2->next;}}return 1;}}void inputprocess(){PCB *p1,*p2;int num;printf("How many processes do you want to run:");fprintf(f,"How many processes do you want to run:");scanf("%d",&num);fprintf(f,"%d\n",&num);p1=&head_input;p2=p1;p1->next=new PCB;p1=p1->next;for(int i=0;i<num;i++){printf("Input NO.%3d process pname:",i+1);fprintf(f,"Input NO.%3d process pname:",i+1);scanf("%s",p1->pname);fprintf(f,"%s\n",p1->pname);printf(" runtime:");fprintf(f," runtime:");scanf("%d",&(p1->runtime));fprintf(f,"%d\n",&(p1->runtime));printf(" arrivetime:");fprintf(f," arrivetime:");scanf("%d",&(p1->arrivetime));fprintf(f,"%d\n",&(p1->arrivetime));p1->runtime=(p1->runtime)*1000;p1->arrivetime=(p1->arrivetime)*1000;p1->state=R;p1->next=new PCB;p2=p1;p1=p1->next;}delete p1;p1=NULL;p2->next=NULL;}/* 主函数*/void main(){f=fopen("result.txt","w");printf("\n time l=1000 time slice\n");fprintf(f,"\n time l=1000 time slice\n");current=0;inputprocess();readyprocess();getch();fclose(f);}。
操作系统的处理机管理功能概要
交通计算机 翟高寿
第4页共6页ห้องสมุดไป่ตู้
进程通信
主要任务 进程(或线程)间信息交换
进程通信方式 共享存储器 管道方式 消息传递系统 A. 消息缓冲队列 B. 邮箱
交通计算机 翟高寿
第5页共6页
知行合一, 开拓进取!
操作系统的处理器管理功能概要■
交通计算机 翟高寿
第6页共6页
操作系统的处理器管理 功能概要
交通 计算机
翟高寿
第1页共6页
处理器调度
作业调度 作业后备队列 作业选择与资源分配 调入内存与建立进程
进程调度 就绪进程队列 进程选择与处理机分配 设置运行现场与启动运行
调度算法 先来先服务/优先权高者优先调度算法
交通计算机 翟高寿
第2页共6页
进程控制
主要任务 创建进程 撤销进程 进程状态转换
进程控制机制 原语 进程&线程
交通计算机 翟高寿
第3页共6页
进程同步
主要任务 进程/线程并发执行协调 互斥/同步方式 临界资源&临界区
进程同步机制 开/关锁原语 信号量机制 管程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、程序执行的不连续性
单道程序执行: 等待CPU
3 2 1 输入输出 执行
多道程序执行(以分时系统为例):
3 2 1
2、与其它程序共享资源
• 从上例可以看出,多道程序在执行时, 一个程序要与其它程序共享CPU资源,实 际上,在多道程序运行时,包括内存、 外部设备在内的各种资源都需要共享 (竞争),在后面的内存管理和设备管 理章节中会有更详细的阐述。
例题1 平均周转时间
T1=2秒 T2=0.5+6=6.5秒 (从1.5—2秒等待作业A完成) T3=5.5+30=35.5秒 (从2.5—8秒等待作业B完成) 则:T=(T1+T2+T3)/3=(2+6.5+35.5)/3=15(秒)
例题2
• 有三个作业,分别于第0秒、第1.5秒、第2.5秒分别进 入后备队列,他们所需CPU时间分别为:30秒、6秒、2 秒,按照FCFS调度算法,计算这三个作业的平均周转 时间。
作业调度的原则
1. 公平对待后备队列中的每一个作业 2. 进入内存的作业能均衡地使用资源 3. 力争在单位时间内为更多的作业服 务,提高吞吐能力
作业平均周转时间
假设第i个作业进入后备状态的时刻 为Si,执行完毕的时刻为Wi,则该作业周 转的时间为: Ti=Wi-Si 在系统中如果有n个作业,则平均周 转时间为:T=∑(Ti)/n 平均周转时间值越小,表示作业平 均等待的时间越短。
经典的作业调度算法
1. FCFS——先来先服务(First Come First Served ) 2. SJF——短作业优先 ( Sortest Job First ) 3. HRRF——最高相应比优先 ( Highest Response Ratio First )
FCFS
• 按照作业进入后备队列的先后次序作为 运行的先后次序。这与我们排队处理各 种事情的理念是一样的。在一般情况下, 在后备队列等待时间最长的将被调度进 入内存运行。但是如果此时该作业所需 的资源无法获得满足,将会被推迟选中。
SJF调度策略不考率作业进入后 备的时间顺序,只考虑作业对 CPU的时间需求。
SJF调度7、10 秒进入后备,申请CPU时间为20秒、40 秒、10秒,假如系统在第10秒后开始 作业调度,按照SJF调度策略,不考虑 进入后备的顺序,只考虑后备作业对 CPU时间的需求量,调入运行顺序为C -> A -> B。
课后练习
讨论: 有时貌似公平的解决方案,也有不合理的地方,因此 没有绝对的公平合理。今天所学的三个调度算法就是 一个例证。结合自己在平时生活中见到或亲身经历的 情况,谈谈想法。 复习: 教材P32—P37的内容。 作业: 有A、B、C、D四个作业,分别于0秒、2秒、2.5秒、6 秒进入系统后备队列,他们分别申请CPU时间8秒、4 秒、20秒、5秒。请参照教材的做法,分别给出在 FCFS、SJF、HRRF调度算法下的作业周转时间表和平 均周转时间。
3、程序执行过程不可再现
• 例如一辆汽车从事从A地到B地货物运输,虽然每次运 输时车型、运输的物品、行驶的线路都相同,但由于 各种交通因素的影响(其它车辆干扰、交通信号控 制),每次行驶过程都与以前不同,是独一无二的、 不可再现的。 • 同样,一个程序的执行过程受到在内存中的其他程序 的影响和制约。如果把该程序再次投入运行,尽管自 身的代码、数据、需求都没有变化,但由于内存中其 它程序数量及状态的变化,影响该程序的执行过程, 相对应的每个时刻的状态而言,本次执行过程有别于 过去任何一次执行过程,而且是不可再现的。
处理机管理
• 处理机管理主要介绍操作系 统对于CPU的管理,分为作业 管理和进程管理两部分。
作业步
• 完成整个作业的执行,往往要分为若干个步骤, 每个步骤称之为一个“作业步”。
• 作业步的划分通常以数据依赖关系来确定,即 上一步骤的输出结果是下一步骤执行所需要的 输入数据。 • 例如:一个C语言程序的执行可分为编译—>连 接—>运行三个步骤。编译步骤将源程序编译 成.obj的中间代码;连接步骤将中间代码转化 为可执行代码,执行步骤运行可执行代码。
SJF算法的缺点
但如果在系统运行过程中,仍不断有短作业 进入后备,则长作业前面就不断有“插队” 的,在极端情况下造成长作业永远得不到运 行,这对长作业是不公平的。 因此希望有一种算法能兼顾作业申请CPU时 间和在辅存中已等待时间这两方面的因素。
HRRF——最高相应比优先
最高相应比优先 (Highest Response_ratio First) 将作业在后备区已经等待的时间与该作业申请 需要的处理器时间相除,得出一个称之为“响 应比”系数: 响应比 = 已等待时间/申请CPU时间
作业执行的两种调度
• 系统执行作业通常分为两个阶段: • 1、系统从辅存中选择合适的作业进 入内存,属于作业调度。 • 2、系统对已经在内存中的作业分配 处理机,属于进程调度。
作业调度
• 操作系统按照一定的策略,将 “后备状态”的作业调入内存中 准备执行的行为,称之为作业调 度。 • 从作业位臵变化角度看,作业调 度是把要执行的作业从辅助存储
如果一个作业的响应比大,要么该作业需要的 时间短,要么该作业已经在后备区等待了足够 长的时间。
例题(P33 例2-5)
• 有5个作业到达后备时间如下表:
作业 到达时间 所需CPU时间
1
2 3
10.1
10.3 10.5
(0)
(0.2) (0.4)
0.7
0.5 0.4
4
5
10.6
10.7
(0.5)
(0.6)
T=(0.7+0.3+0.9+1.2+2)/5=1.02
HRRF
• 调入顺序 1、2、5、3、4
R4=3.25 4 3 5 2 1 0.5 0 0.2 0.4 0.6 0.7 t4=0.7+0.5+0.2+0.4+0.4-0.5=1.7
R3=2 t3=0.7+0.5+0.2+0.4-0.4=1.4 R5=3 t5=0.7+0.5+0.2-0.6=0.8 R2=1 t2=0.7+0.5-0.2=1 t1=0.7
程序的概念
• 程序是人们为了让计算机完成某 项任务,按照执行时间顺序而编 写的指令序列。
程序的特点
1. 连续执行——人们在编写时都假设, 自己的程序将一次执行完毕。 2. 独占资源——人们在编写时都假设, 自己的程序将无条件享有所需要的各 种资源。 3. 过程再现——人们在编写时都假设, 当程序重复运行时,每一时刻的状态 和结果都能够重复再现。
调入顺序为:1、2、5、4、3
前台
后台
你排队去买火车票,假如买一张票,需 要花费10秒钟,如果在你前面的某个人 要买500张票,你以及在后面排队的人将 会感觉很糟糕。 售票员把这个单子接下来,并请他明天 来取,然后继续为后面买零票的顾客服 务。只在窗口没有人排队的空闲时间里, 售票员才来处理500张票的单子。
作业管理
• 操作系统将用户提交的作业输入到 辅助存储器,并按照一定的调度策 略,选择合适的作业进入内存执行, 直至完成的管理过程。 • 作业管理贯穿整个作业的生命周期。
作业状态(P31)
• 提交状态——作业及说明书提交给系 统管理员,等待输入辅助存储器; • 后备状态——作业被输入到辅助存储 器中,等待调度程序挑选进入内存; • 运行状态——作业被调度程序选中, 加载进入内存执行; • 完成状态——作业执行完毕,系统回 收所有资源。
作业三
作业二
作业一
0
2
4
6
8
10 12 14
16 18
20 22
24 26 28 30
32 34 36 38
40
例题2平均周转时间
T1=30秒 T2=28.5+6=34.5秒(从1.5—30秒等待作业A完成) T3=33.5+2=35.5秒(从2.5—36秒等待作业A和B完成) 则:T=(T1+T2+T3)/3=(30+34.5+35.5)/3=33.33(秒)
操作系统的两种用户接口类型
1. 操作命令 ① 脱机命令——通过作业说明书、批处理程序 等形式提交给操作系统,由系统自动执行, 中途无需人工干预(无交互)。 ② 联机命令——通过键盘、鼠标、操纵杆等设 备向计算机发出一个操命令,接收并显示反 馈信息(有交互)。
2. 系统调用——通过程序调用接口形式提供给 用户的,如DOS中的系统调用,Windows 中 的API 。
例题1
• 有三个作业,分别于第0秒、第1.5秒、第2.5秒分别进 入后备队列,他们所需CPU时间分别为:2秒、6秒、30 秒,按照FCFS调度算法,计算这三个作业的平均周转 时间。
作业三
作业二
作业一
0
2
4
6
8
10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
单道程序执行
1. 执行的连续性——程序一次执行 完毕,不被打断。 2. 资源的独占性——程序独自享有 所需要的各种资源。 3. 结果的再现性——程序重复运行 时,每一时刻的状态和结果都将 能够再现。
多道程序执行
在多道程序并发执行的情况下,程序的 上述三个特点都不存在了,相反呈现出 下面的特征:
结果比较
• 比较上面两个例子可以得出:在大作业 先行到达后备时,使用FCFS调度策略, 可能导致系统作业的平均周转时间较长, 也就是说如果小作业到达略微迟一点点, 就可能要等待很长时间。如果只要执行 一分钟的作业需要等待10小时,是一件 令人痛苦的事。