`
yangyou230
  • 浏览: 1647996 次
文章分类
社区版块
存档分类

《计算机操作系统》学习笔记(二)---处理机管理

 
阅读更多
在传统的多道程序系统中,处理机的分配和运行,都是以进程为基本单位,因而对处理机的管理,可归结为对进程管理,对进程的管理主要有包括:进程控制、进程同步、进程通信、进程调度。
一、进程的基本概念
1、程序有两种执行方式,其中包括顺序执行和并发执行。
顺序执行的特征为:顺序性、封闭性(程序运行时独占全机资源,其执行结果不受外界影响)、可再现性(只要运行环境和初始条件相同,程序重复执行都获得相同结果);
并发执行的特征为:间断性(程序之间的相互制约导致“执行-暂停-执行”)、失去封闭性、不可再现性(即使运行环境和初始条件相同,程序重复执行都获得结果也不一定相同);
2、进程的特征:
(1)结构性
由程序段、数据段和PCB三部分便构成了进程实体;
(2)动态性
进程由创建而产生,由调度而执行,由撤销而消亡,进程是有一定的生命周期,是动态的;
程序只是一组有序的指令集合,并存放于某些介质上,其本身不具有运动的含义,是静态的;
(3)并发性
这是指多个进程实体同存于内存中,且能在一段时间内同时运行;
(4)独立性
进程是一个能独立运行、独立分配资源和独立接受调度的基本单位;
(5)异步性
这是指进程按各自独立的、不可预知的速度向前推进。
3、进程的基本状态:
一共4种:就绪状态、执行状态、阻塞状态、挂起状态
就绪状态:当前进程已分配到除CPU以外的所有必要资源;
执行状态:当前进程已分配到包括CPU在内的所有必要资源;

阻塞状态:正在执行的进程请求I/O,申请缓冲空间等;


挂起状态:即将该进程从内存中暂时调出到外存,原因如:终端用户的请求、父进程的请求、负荷调节的需要、操作系统的需要。

4、进程控制块
系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内。PCB是进程存在的唯一标志,常驻于内存中。
PCB主要包括四方面的信息:进程标识符、处理机状态、进程调度信息、进程控制信息
(1)进程标识符
内部标识符,进程的序号,方便系统调用;
外部标识符,由创建者提供,方便用户使用;
(2)处理机状态
处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息都必须保存在PCB中,以便中断后重新执行。这些信息包括(通用寄存器、指令计数器、程序状态字PSW、用户栈指针)这些寄存器的数据;
(3)进程调度信息
与进程调度和进程对换的相关信息,包括:进程状态、进程优先级、进程调度的其他信息和事件(即阻塞原因);
(4)进程控制信息
包括程序和数据的地址、进程同步和通信机制(如消息队列指针、信号量等)、资源清单(即进程所需的全部资源)、链接指针(指向下一个PCB)。
PCB在内存中的组织方式有链接方式和索引方式两种。

二、进程控制

进程控制包括:进程的创建、进程的终止、进程的状态转换
1、进程的创建
引起创建进程的事件包括:用户登录、作业调度、提供服务、应用请求。
创建进程的过程:申请空白PCB—>为新进程分配资源—>初始化PCB—>将PCB插入就绪队列。
2、进程的终止
引起终止进程的事件包括:正常结束、异常结束、外界干预(如父进程终止)。
终止进程的过程:根据进程标识符读取PCB(若执行状态,置调度标志真)—>终止子孙进程—>释放全部资源—>将PCB从队列移除。
3、进程的状态转换
(1)进程的阻塞和唤醒
引起事件:请求系统服务(阻塞)、启动某种操作(唤醒)、新数据尚未到达(阻塞)、无新工作可做(阻塞)。
进程阻塞的过程:停止本进程—>改变PCB—>调度新进程;
进程唤醒的过程:PCB从阻塞队列移除—>改变PCB—>PCB插入到就绪队列;
(2)进程的挂起和激活
进程挂起的进程:改变PCB—>复制PCB(方便用户或父进程考查该进程)—>调度新进程;
进程激活的进程:将该进程从外存调入内存—>改变PCB—>调度该进程;
三、进程同步

进程同步的主要任务,是是并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
1、同步机制
间接相互制约关系:如:A进程使用一资源,B进程只能等待,即A进程通过共享资源简介制约B进程;
直接相互制约关系:如:B进程执行所需的数据由A进程得到,即A进程直接制约B进程;
同步机制应遵循的规则包括:空闲让进、忙则等待、有限等待、让权等待。
2、信号量机制
其中包括整形信号量、记录型信号量、AND信号量。
三种信号量的区别:
整形信号量N只是一个整型值,代表着某类资源的数目,当N<=0,即后申请使用该资源的进程会不断地查询是否N>0,一旦N>0,即取之来用,这是一种忙等现象;
记录型信号量S是一个结构体,S.value相当于整形信号量N,当S.value<=0,即后申请使用该资源的进程会进入阻塞状态,并将其挂在S.L中,等待唤醒,遵循“让权等待”策略;
AND信号量代表着多类资源的数目,其中有一类资源的数目小于零,即分配资源失败。
四、进程通信

高级进程通信机制有五种:共享存储器系统、消息传递系统、管道通信系统、信号机制、信号量机制。

1、共享存储器系统(传送大量数据,锁机制):
共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。
共享内存实现分为两个步骤:(1)创建共享内存(2)映射共享内存,将这段创建的共享内存映射到具体的进程空间去

2、消息传递系统(消息缓冲队列通信机制,传送小量数据):
(1)进程间的数据交换是以格式化的消息(报文)为单位的,程序员直接利用系统提供的通信原语进行通信,操作系统隐藏了通信的实现细节。其中的直接通信方式即直接向某进程发送报文或直接向某进程接收报文,而间接通信方式即为向某信箱发送报文或向某信箱接收报文,其中的信箱为“中转站”,包括私有信箱、公用信箱、共享信箱。
(2)由于消息缓冲机制中所使用的缓冲区为公用缓冲区,因此使用消息缓冲机制传送数据时,两通信进程必须满足如下条件。
第一,在发送进程把写入消息的缓冲区挂入消息队列时,应禁止其他进程对该消息队列的访问,否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息时,也应禁止其他进程对该队列的访问。
第二,当缓冲区中无消息存在时,接收进程不能接收到任何消息;而发送进程是否可以发送消息,则只由发送进程是否能够申请到缓冲区决定。

3、管道通信系统(读者-写者):
管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写管道,在其它进程从管道中移走数据之前,写进程将一直阻塞;

4、信号机制:发送信号

5、信号量机制:P、V操作,进程间同步互斥,生产者-消费者,哲学家进餐等。

参考网站:
http://blog.csdn.net/zccst/article/details/4836901
http://blog.csdn.net/zccst/article/details/4836937
五、进程调度

1、进程调度的种类
高级调度:又叫作业调度,即每次要接纳多少个作业进入内存;
中级调度:把那些暂时不能运行的进程调至外存上等待;
低级调度:又叫进程调度,即将处理机分配给哪个进程使用。
进程调度的准则:
面向用户的准则包括:周转时间短、响应时间快、截止时间保证;
面向系统的准则包括:系统吞吐量高、处理机利用率好、各类资源的平衡利用。
2、调度算法
(1)先来先服务调度算法(FCFS):有利于长作业,而不利于短作业;
(2)短作业优先调度(SJF):对长作业不利;未考虑作业的紧迫程度;作业长短的时间估计不一定精确;
(3)高优先权先调度读算法(FPF):其中的高响应比优先调度算法比较理想;
(4)基于时间片的轮转调度算法:其中的多级反馈队列调度算法比较理想;
3、实时系统中的调度
为了实现实时调度,系统应向调度进程提供相关信息,包括:就绪时间、开始截止时间和完成截止时间、处理时间、资源要求和优先级。常使用最早截止时间优先算法(EDF)(利用到开始截止时间)和最低松弛度优先算法(LLF)(利用到完成截止时间和处理时间);
4、多处理机系统中的调度
多处理机系统的分类:从多处理机之间耦合的紧密程度分为紧密耦合和松弛耦合,根据系统中所用处理机的相同与否可分为对称多处理机系统和非对称多处理机系统。
进程分配方式:静态分配,即一个进程从开始执行直至其完成,都被固定地分配到一个处理机上去执行;而动态分配,即系统中设有一个公共就绪队列,分配时,可将进程分配到任何一个处理机上;
进程调度方式:自调度方式,即系统中设有一个公共就绪队列,哪一个处理机有空闲,就自己去该队列中取一就绪进程来运行;成组调度方式,即将一个进程中的一组线程分配到一组处理机上去执行,可面向所有应用程序平均分配处理机时间,也可以面向所有线程平均分配处理机时间;专用处理机分配,即专门为该应用程序分配一组处理器,每个线程一个处理机,直至该应用程序完成。
5、死锁
产生原因:竞争资源、进程间推进顺序非法;
必要条件:互斥条件、请求和保持条件、不剥削条件、环路等待条件;
处理方法:预防死锁(执行前预防)、避免死锁(执行时避免)、检测和解除死锁(执行后检测和解除)。

分享到:
评论

相关推荐

    《操作系统》学习笔记.doc

    《操作系统》学习笔记 汤承林 第1章 概述 本章介绍了操作系统的基本概念。主要包括: 计算机系统由硬件和软件两大部分组成,操作系统是计算机系统中的一种系统软件, 它管理计算机系统的资源和控制程序的执行,改善...

    计算机操作系统(第三版)

    《计算机操作系统》可作为计算机硬件和软件以及计算机通信专业的本科生教材,也可作为从事计算机及通信工作的相关科技人员的参考书。 目录 第一章 操作系统引论 1.1 操作系统的目标和作用 1 1.1.1 操作系统的...

    数据库系统概论王珊第五版学习笔记.docx

    数据库系统概论王珊第五版学习笔记 第一章 1.数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统。 数据:是数据库中存储的基本对象。描述事物的符号称为数据。 数据库:是长期存储在计算机内、有组织...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

    酒店管理信息系统课程设计.doc

    只有运用先进的科学管理手段,利用计算机管理系统才 能更好实现这一管理模式。 宾馆客房管理信息系统是用来收集、处理、存贮和传播客房、顾客、结算信息,以信 息管理为核心的计算机应用系统。利用宾馆客房管理信息...

    软考中级软件设计师笔记.zip

    软考中级软件设计师学习笔记 World版本 下载后可直接打印作为2020年上半年考试的复习资料用 1.CPU 的功能的功能:程序控制、操作控制、时间控制、数据处理。 2.计算机系统组成示意图计算机系统组成示意图: 3....

    net学习笔记及其他代码应用

    答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。 40.接口是否可...

    自考计算机基础应用-0018.docx

    第二节 计算机的硬件系统 计算机硬件是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。1.中央处理器(CPU)【010201】 专门用来完成读取指令和执行指令的部件称为中央处理器(Central ...

    《计算机应用基础》读书笔记.doc

    读书笔记 类型: 课程学习 名称: 计算机应用基础 时间:2006.7.7 体裁:说明文 " 知识内容与结构 "备 注 " "一.知识整体结构层次1说明: " " "计算机基础知识 " " "计算机软件 (系统软件-—操作系统) " " "计算机...

    Sysprep Chief Executive Officer系统封装首席执行官

    对系统封装过程的一些自定义设置模块,主要设置有:自动运行Sysprep.exe进行封装、自动卸载硬件驱动、自动更改处理硬件HAL、加载扩展SRS驱动、自动保存当前系统的输入法状态、封装后锁定计算机信息防止二次修改等等...

    计算机应用基础中职PPT学习教案.pptx

    文字处理软件及应用 电子表格处理软件及应用 多媒体软件应用 制作演示文稿 第三章 第四章 第五章 第六章 第七章 计算机基础知识 操作系统的应用 第一章 第二章 第1页/共11页 计算机应用基础中职PPT学习教案全文共11...

    《计算机应用基础》教案-第1章计算机基础知识.doc

    " "1年开始) " " " " " "2、计算机应用领域 " " "1)科学计算 "学生听讲,笔记 " "2)数据处理 " " "3)自动控制 " " "4)计算机辅助系统 " " " "学生思考、讨论, " "三、课堂小结(讲解法) " " "教师结合学生...

    vlan学习笔记

    VLAN学习笔记大全 VLAN学习笔记大全(1):为什么需要VLAN 什么是VLAN? &lt;br&gt; VLAN(Virtual LAN),翻译成中文是"虚拟局域网"。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的...

    自己动手写操作系统(含源代码).part2

    Woodhull的《操作系统:设计与实现》来学习操作系统的读者,本书尤其适合作为你的引路书籍,因为它翔实地介绍了初学者入门时所必需的知识积累,而这些知识在《操作系统:设计与实现》一书中是没有涉及的,笔者本人...

    自己动手写操作系统(含源代码).part1

    Woodhull的《操作系统:设计与实现》来学习操作系统的读者,本书尤其适合作为你的引路书籍,因为它翔实地介绍了初学者入门时所必需的知识积累,而这些知识在《操作系统:设计与实现》一书中是没有涉及的,笔者本人...

    云笔记系统手机客户端,使用Ionic3编写,可编译为Android、iOS和Windows Phone客户端.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    电子时钟设计(1).doc

    存储器主要功能存放程序和数据程序计算机操作依据数据计算机操作对象存储器由存储 体、地址译码器、读写控制电路、地址总线和数据总线组成能由央处理器直接随机存取 指令和数据存储器称主存储器磁盘、磁带、光盘等大...

    若干源程序资料12.rar

    2012-06-11 21:11 60,547 C++工会管理系统源代码.rar 2012-06-11 21:22 2,618,588 COM技术内幕源码.rar 2012-06-11 21:16 97,280 C语言 内存管理详解.doc 2012-06-11 21:06 387,499 c语言写的一个多任务内核.rar ...

    计算机课程总结.docx

    计算机中系统软件的核心是操作系统,它主要用来控制和管理计算机的所有软硬件资源。操作系统中存储管理是对内存的管理。在"我的电脑"各级文件夹窗口中,按Ctrl+单击要选定的文件对象,可以选择多个不连续排列的文件...

Global site tag (gtag.js) - Google Analytics