《第六章_UNIX操作系统.ppt》由会员分享,可在线阅读,更多相关《第六章_UNIX操作系统.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 操作系统 第六章 U UN NI IX X操操作作系系统统第六章第六章 UNIXUNIX操作系统操作系统6.1 6.1 UNIXUNIX操作系统概述操作系统概述6.2 6.2 UNIXUNIX系统用户界面系统用户界面6.3 6.3 UNIXUNIX系统进程管理系统进程管理6.4 6.4 UNIXUNIX系统存储器管理系统存储器管理6.5 6.5 UNIXUNIX系统文件管理系统文件管理6.6 6.6 UNIXUNIX系统设备管理系统设备管理1 1 操作系统 第六章 U UN NI IX X操操作作系系统统一、UNIX操作系统的发展 UNIXUNIX最初是由汇编语言编写的,最初是由汇编语言编写
2、的,19731973年用年用C C语言重写。语言重写。UNIXUNIX的主要特点:的主要特点:短小精悍、简易有效,并具有易理解、易短小精悍、简易有效,并具有易理解、易扩充、易移植性扩充、易移植性.第六章第六章 UNIX操作系统系统6.1 UNIX操作系统概述二、UNIX操作系统的主要特点UNIXUNIX系统的优点系统的优点1 1)UNIXUNIX是一个是一个交互式的分时多用户多任务的操作系统交互式的分时多用户多任务的操作系统,每,每个用户都可以同时执行多个进程。个用户都可以同时执行多个进程。2 2 操作系统 第六章 U UN NI IX X操操作作系系统统2 2)提供了丰富的系统功能。如支持十
3、几种常用程序设计语)提供了丰富的系统功能。如支持十几种常用程序设计语言的编译和解释程序,它提供的软件工具使用户很方便的言的编译和解释程序,它提供的软件工具使用户很方便的开发新的软件,它提供了能由较简单的程序构造复杂程序开发新的软件,它提供了能由较简单的程序构造复杂程序的原语。的原语。3 3)提供了多种通讯机制以满足各种进程通讯的需要。)提供了多种通讯机制以满足各种进程通讯的需要。4 4)提供了良好的用户界面。该系统提供一种)提供了良好的用户界面。该系统提供一种命令程序设计命令程序设计语言语言shellshell作为作为用户界面用户界面。它具有许多高级语言所拥有的控。它具有许多高级语言所拥有的控
4、制流能力,如制流能力,如if/for/whileif/for/while等语句。作为用户程序与操作等语句。作为用户程序与操作系统的接口,则提供了系统调用。这些界面既能为用户提系统的接口,则提供了系统调用。这些界面既能为用户提供各种服务、又相当简洁。供各种服务、又相当简洁。5 5)在)在UNIXUNIX系统中使用了树形结构的文件系统,它具有良好系统中使用了树形结构的文件系统,它具有良好的安全性、保密性和可维护性;的安全性、保密性和可维护性;3 3 操作系统 第六章 U UN NI IX X操操作作系系统统6 6)文件、目录和设备统一处理,外部设备如同磁盘上的普)文件、目录和设备统一处理,外部设备
5、如同磁盘上的普通文件一样被访问、共享和保护;文件采用字节流这样的一通文件一样被访问、共享和保护;文件采用字节流这样的一致格式,易于程序设计。致格式,易于程序设计。7 7)该系统主要用)该系统主要用C C语言编制,使之易读、易懂,易修改、易语言编制,使之易读、易懂,易修改、易移植到其它计算机上。移植到其它计算机上。UNIXUNIX系统的缺点系统的缺点1 1)UNIXUNIX系统版本太多。系统版本太多。UNIXUNIX鼓励用户用鼓励用户用UNIXUNIX的的工具开发适合工具开发适合自己需要的环境。目前自己需要的环境。目前UNIXUNIX的的标准化正在进行。标准化正在进行。2 2)UNIXUNIX系
6、统缺少实时控制、分布式处理等能力。系统缺少实时控制、分布式处理等能力。3 3)UNIXUNIX系统的核心是无序模块结构。不是层次式的,不易修系统的核心是无序模块结构。不是层次式的,不易修改和扩充。改和扩充。4 4 操作系统 第六章 U UN NI IX X操操作作系系统统三、三、UNIXUNIX系统结构系统结构UNIXUNIX系统的体系结构系统的体系结构应用程序层应用程序层实用层实用层核心层核心层 硬件硬件 整个整个UNIXUNIX系统可以分成四个层次。最低层是硬件,作为系统可以分成四个层次。最低层是硬件,作为整个系统的基础;次低层是整个系统的基础;次低层是OSOS核心层核心层,包括了进程管理
7、、存包括了进程管理、存储器管理、设备管理和文件管理四大资源管理功能。上面第储器管理、设备管理和文件管理四大资源管理功能。上面第二层是二层是OSOS与用户的接口与用户的接口shellshell,以及编译程序等,最高层是以及编译程序等,最高层是应用程序。应用程序。5 5 操作系统 第六章 U UN NI IX X操操作作系系统统库库函数函数用户程序用户程序核心层核心层用户层用户层文件子系统文件子系统进程间通信进程间通信进程调度进程调度存储管理存储管理进程控制进程控制子系统子系统高速缓存高速缓存字符设备字符设备块设备块设备设备驱动程序设备驱动程序系统调用接口系统调用接口硬件控制硬件控制硬件硬件核心层
8、核心层硬件层硬件层陷入陷入U UN NI IX X系系统统核核心心框框架架图图6 6 操作系统 第六章 U UN NI IX X操操作作系系统统整个整个UNIXUNIX系统可分成两大部分:系统可分成两大部分:1.1.由用户程序和系统提供的服务构成的所谓核外程序,形由用户程序和系统提供的服务构成的所谓核外程序,形成了良好的系统环境;成了良好的系统环境;2.2.操作系统,又称为核心,其中两个主要的部分是文件子操作系统,又称为核心,其中两个主要的部分是文件子系统和进程控制子系统。系统和进程控制子系统。核外程序通过引用两组被明确定义的系统调用与核心交核外程序通过引用两组被明确定义的系统调用与核心交往:
9、往:1 1)一组用于与文件子系统的交互作用;)一组用于与文件子系统的交互作用;2 2)另一组则用于与进程控制子系统的交互作用。)另一组则用于与进程控制子系统的交互作用。进程控制子系统进程控制子系统负责进程的创建、结束、同步、通信和负责进程的创建、结束、同步、通信和进程调度以及存储器的管理。进程调度以及存储器的管理。文件子系统文件子系统用于有效地管理系统中的所有文件、并提供用于有效地管理系统中的所有文件、并提供高速缓冲机制。高速缓冲机制。7 7 操作系统 第六章 U UN NI IX X操操作作系系统统6.2 6.2 UNIXUNIX系统用户界面系统用户界面一、一、UNIXUNIX的用户界面的用
10、户界面 UnixUnix既有既有编程接口编程接口,即,即系统调用系统调用;又有;又有操作接口操作接口,即,即shellshell。其中其中shellshell接口分为基本命令、特殊命令和接口分为基本命令、特殊命令和shellshell编编程。程。1.1.基本命令包括:系统访问命令;编辑和文件管理命令;基本命令包括:系统访问命令;编辑和文件管理命令;编译、链接命令;维护、管理命令;调试命令等编译、链接命令;维护、管理命令;调试命令等2.2.特殊命令包括:后台命令;通配符;文件重定向;管道特殊命令包括:后台命令;通配符;文件重定向;管道命令;滤波器等命令;滤波器等3.3.ShellShell程序语
11、言可以把程序语言可以把shellshell命令编制成程序,按批处理命令编制成程序,按批处理执行。执行。二、二、UNIX的命令控制界面的命令控制界面8 8 操作系统 第六章 U UN NI IX X操操作作系系统统三、三、UNIXUNIX系统调用系统调用UNIXUNIX系统调用可以分成三类:系统调用可以分成三类:1 1)与进程管理有关的系统调用;)与进程管理有关的系统调用;建立一个进程;进程中止;建立一个进程;进程中止;2)2)与文件和外设管理有关的系统调用;与文件和外设管理有关的系统调用;打开文件;读文件;打开文件;读文件;3)3)与系统状态有关的系统调用;与系统状态有关的系统调用;设置用户号
12、;设置系统日历时间;设置用户号;设置系统日历时间;1.1.UNIXUNIX系统调用的分类系统调用的分类9 9 操作系统 第六章 U UN NI IX X操操作作系系统统 系统调用是用户程序请求操作系统为其服务的唯一形式,系统调用是用户程序请求操作系统为其服务的唯一形式,在在UNIXUNIX中把系统调用称为程序员接口。中把系统调用称为程序员接口。UNIXUNIX规定用户程序用规定用户程序用捕俘捕俘(traptrap)指令请求系统服务,指令请求系统服务,UNIXUNIX核心中的中断捕俘程核心中的中断捕俘程序根据序根据traptrap的类型转向相应的处理程序。的类型转向相应的处理程序。traptra
13、p指令形式如下:指令形式如下:二、二、UNIXUNIX系统调用的实现系统调用的实现 UNIXUNIX第第6 6版共有版共有4 4l l条系统调用,条系统调用,UNIXUNIX第第7 7版共有版共有5050条系条系统调用统调用,其中有其中有3232条是常用的。条是常用的。1010 操作系统 第六章 U UN NI IX X操操作作系系统统6.3 6.3 UNIXUNIX系统的进程管理系统的进程管理 一一、UNIXUNIX进程的结构进程的结构1.1.UNIXUNIX系统的进程组成系统的进程组成:1)1)进程控制块进程控制块PCB;PCB;2)2)数据段数据段;3)3)正文段。正文段。UNIXUNI
14、X系统为了节省进程控制块所占的主存空间,把系统为了节省进程控制块所占的主存空间,把每个进程控制块分成两部分每个进程控制块分成两部分:1)1)常驻主存部分常驻主存部分(称(称基本控制块基本控制块,称,称procproc结构结构):不管进程不管进程是否正占有处理器运行。系统经常会对这部分的内容进行查是否正占有处理器运行。系统经常会对这部分的内容进行查询和处理,常驻部分的内容包括:进程状态、过程待征、优询和处理,常驻部分的内容包括:进程状态、过程待征、优先数、数据段始址、等待原因和队列指针等,这是进行处理先数、数据段始址、等待原因和队列指针等,这是进行处理器调度时必须使用的一些主要信息。器调度时必须
15、使用的一些主要信息。1111 操作系统 第六章 U UN NI IX X操操作作系系统统2)2)非常驻主存部分非常驻主存部分(称(称扩充控制块扩充控制块,称,称useruser结构结构):当进:当进程不占有处理器时,系统不会对这部分的内容进行查询相处程不占有处理器时,系统不会对这部分的内容进行查询相处理,因此,这部分内容可以存放在磁盘的对换区中,它随用理,因此,这部分内容可以存放在磁盘的对换区中,它随用户的程序和数据部分换进或换出主存。户的程序和数据部分换进或换出主存。UNIXUNIX系统把进程的数据段又划分成三部分:系统把进程的数据段又划分成三部分:1 1)用户栈区)用户栈区(供用户程序使用
16、的信息区供用户程序使用的信息区);2 2)用户数据区)用户数据区(包括用户工作数据和非再入的程序段);包括用户工作数据和非再入的程序段);3 3)进程数据区)进程数据区ppdappda(包括系统变量和对换信息)。包括系统变量和对换信息)。正文段:正文段:是是可再入的程序可再入的程序,能被若干进程,能被若干进程共享共享。为了管理。为了管理可共享的正文段,可共享的正文段,UNIXUNIX设置了一张正文表每个正文段都设置了一张正文表每个正文段都占用一个表目,用来指出该正文段在主存和磁盘上的位置、占用一个表目,用来指出该正文段在主存和磁盘上的位置、段的大小、调用该段的进程数等情况。段的大小、调用该段的
17、进程数等情况。1212 操作系统 第六章 U UN NI IX X操操作作系系统统procuser系系统统栈栈用用户户栈栈数数据据段段正正文文段段UNIX进程映象进程映象UNIXUNIX进程结构进程结构UNIXUNIX中的进程称为进程映象。组成由下图所示。中的进程称为进程映象。组成由下图所示。1313 操作系统 第六章 U UN NI IX X操操作作系系统统2.2.进程的虚拟地址结构进程的虚拟地址结构1)1)进程数据结构及其相互关系进程数据结构及其相互关系userproctextdatastack进程表进程表PPRT区区页表页表内存内存进程数据结构进程数据结构1414 操作系统 第六章 U
18、UN NI IX X操操作作系系统统2)2)系统区表系统区表文件指针文件指针共享计数共享计数状态状态内存始址内存始址长度长度类型类型区号区号 系统区表系统区表1515 操作系统 第六章 U UN NI IX X操操作作系系统统3)3)区表与进程结构区表与进程结构虚拟地址虚拟地址3(栈)(栈)页表页表3始址始址虚拟地址虚拟地址2(数据段)(数据段)页表页表2始址始址虚拟地址虚拟地址1(正文段)(正文段)页表页表1始址始址进程进程A虚拟地址虚拟地址3(栈)(栈)页表页表3始址始址虚拟地址虚拟地址2(数据段)(数据段)页表页表2始址始址虚拟地址虚拟地址1(正文段)(正文段)页表页表1始址始址进程进程
19、B区表项区表项4区表项区表项3区表项区表项2区表项区表项1区表区表页表页表1页表页表3页表页表2页表页表4内存内存 区表与进程区表与进程proc结构结构1616 操作系统 第六章 U UN NI IX X操操作作系系统统3.3.进程上下文进程上下文进程专用代码和数据进程专用代码和数据核心态栈核心态栈用户态栈用户态栈用户程序用户程序P0(用户)区用户)区P1(控制)区控制)区0230231 进程空间结构进程空间结构1717 操作系统 第六章 U UN NI IX X操操作作系系统统系统自举系统自举初始化程序设置各种表格与数据结构初始化程序设置各种表格与数据结构建立建立0进程进程建立建立1进程进程
20、建立终端进程建立终端进程建立建立Shell进程进程用户输入用户输入建立用户进程建立用户进程执行结束执行结束用户进程用户进程执行执行显示提示符显示提示符Shell进程进程等待等待否否是是(UNIX内核入内存)内核入内存)UNIX中各进程的关系中各进程的关系1818 操作系统 第六章 U UN NI IX X操操作作系系统统“0#0#进程进程”:进行进程在主存与磁盘之间的切换调度进行进程在主存与磁盘之间的切换调度。注:注:1)1)正在处理器上运行的进程的所有信息全部存放在主存中。正在处理器上运行的进程的所有信息全部存放在主存中。2)2)当一个进程让出处理器时,如果主存空间紧张的话,就可当一个进程让
21、出处理器时,如果主存空间紧张的话,就可把该进程的大部分信息把该进程的大部分信息(除常驻部分除常驻部分)送到磁盘的对换区中,送到磁盘的对换区中,使它原占用的主存区域可分配给别的进程。如果主存中有足使它原占用的主存区域可分配给别的进程。如果主存中有足够的空闲区时,又可将在磁盘对换区中的进程装入到主存,够的空闲区时,又可将在磁盘对换区中的进程装入到主存,以便在适当的时机可以去占有处理器运行。以便在适当的时机可以去占有处理器运行。所以,在所以,在UNIXUNIX系统中经常要发生进程在主存与磁盘之间系统中经常要发生进程在主存与磁盘之间的切换调度,这种调度是由一个被称其为的切换调度,这种调度是由一个被称其
22、为“0#0#进程进程”的特殊的特殊进程来完成的。进程来完成的。二二、正在处理器上运行的进程正在处理器上运行的进程1919 操作系统 第六章 U UN NI IX X操操作作系系统统 在在UNIXUNIX系统中处于就绪状态的进程可能在主存中,也系统中处于就绪状态的进程可能在主存中,也可能在磁盘对换区中。一个就绪状态的进程,如果在磁盘可能在磁盘对换区中。一个就绪状态的进程,如果在磁盘交换区中,则要让它占有处理器运行的话,必须先把它调交换区中,则要让它占有处理器运行的话,必须先把它调入主存。入主存。UNIXUNIX系统是采用优先数调度算法分配处理器系统是采用优先数调度算法分配处理器的的:1 1)每个
23、进程都有一个优先数;)每个进程都有一个优先数;2 2)一个就绪进程能得到处理器的优先权取决于进程的优先)一个就绪进程能得到处理器的优先权取决于进程的优先数,优先数越小则优先权越高。在数,优先数越小则优先权越高。在UNIXUNIX系统中,调度程序系统中,调度程序总是选择优先数最小的就绪进程去占用处理器。总是选择优先数最小的就绪进程去占用处理器。3 3)系统进程的优先数低于用户进程的优先数。)系统进程的优先数低于用户进程的优先数。就绪状态的进程就绪状态的进程:2020 操作系统 第六章 U UN NI IX X操操作作系系统统4 4)进程在执行中其优先数可以动态改变,例如,对连续使)进程在执行中其
24、优先数可以动态改变,例如,对连续使用处理器时间较长的进程增加其优先数,使它的优先权相应用处理器时间较长的进程增加其优先数,使它的优先权相应降低;而在较长时间里末使用处理器或虽频繁使用处理器但降低;而在较长时间里末使用处理器或虽频繁使用处理器但每次使用时间都很短的进程降低优先数,使它的优先权相应每次使用时间都很短的进程降低优先数,使它的优先权相应提高。又如,对执行提高。又如,对执行I I0 0操作的进程给以优惠,因为它们为操作的进程给以优惠,因为它们为了等待了等待I IO O传输而已较长时间没有使用处理器,故在完成传输而已较长时间没有使用处理器,故在完成I IO O传输后,这些进程的优先数可降低
25、。传输后,这些进程的优先数可降低。进程创建:进程创建:一个进程可通过系统调用一个进程可通过系统调用forkfork创建新的进程形成父子创建新的进程形成父子关系,分别称为父进程和子进程。父进程与子进程可并发执关系,分别称为父进程和子进程。父进程与子进程可并发执行子进程不共享父进程的主存但子进程却可共享父进程行子进程不共享父进程的主存但子进程却可共享父进程已打开的所有文件和当前日录。已打开的所有文件和当前日录。2121 操作系统 第六章 U UN NI IX X操操作作系系统统进程执行:进程执行:进程可通过系统调用进程可通过系统调用execexec来执行一个新文件,即进程可用来执行一个新文件,即进
26、程可用新文件中指定的正文段和数据段宋代替原有的正文段和数据新文件中指定的正文段和数据段宋代替原有的正文段和数据段。这意味着改变了进程执行的程序,但仍然可以使用原来段。这意味着改变了进程执行的程序,但仍然可以使用原来打开的文件。即打开的文件。即execexec用于把一个程序覆盖在正在执行的进程用于把一个程序覆盖在正在执行的进程上而作为当前进程。上而作为当前进程。进程同步:进程同步:UNIXUNIX中的系统调用中的系统调用WaitWait和和exitexit是实现进程间同步的主要是实现进程间同步的主要手段,父进程用系统调用手段,父进程用系统调用waitwait等待它的一个子进程终止;子等待它的一个
27、子进程终止;子进程用系统调用进程用系统调用exitexit终止自己,并唤醒父进程进行善后处理。终止自己,并唤醒父进程进行善后处理。2222 操作系统 第六章 U UN NI IX X操操作作系系统统三、三、进程状态及其转换进程状态及其转换进程状态及其转换进程状态及其转换1 1创创建建状状态态 当当父父进进程程执执行行forkfork系系统统调调用用创创建建子子进进程程期期间间,新被创建的子进程处于创建状态。新被创建的子进程处于创建状态。2 2内内存存中中的的就就绪绪 进进程程已已在在内内存存且且处处于于就就绪绪状状态态。对对于于新新创创建建的的进进程程,若若有有足足够够的的内内存存,核核心心可
28、可将将它它安安置置在在内内存存中,新进程便处于内存就绪状态。中,新进程便处于内存就绪状态。3 3外外存存中中的的就就绪绪 进进程程处处于于就就绪绪状状态态,但但被被换换出出到到外外存存中中。在在创创建建新新进进程程时时,若若无无足足够够的的内内存存,核核心心将将新新进进程程安安置置在在外外存存对对换换区区中中,形形成成就就绪绪且且换换出出状状态态;此此外外,原原已已在在内内存存中中的的就就绪绪进进程程,可可能能因因内内存存紧紧张张而而被被换换出出,同同样样也也成为就绪且换出状态。成为就绪且换出状态。4 4核核心心态态执执行行 一一个个进进程程在在执执行行系系统统调调用用时时,即即转转换换为为核
29、核心态执行。心态执行。2323 操作系统 第六章 U UN NI IX X操操作作系系统统5 5用户态执行用户态执行 用户程序在执行完系统调用后,使出核心用户程序在执行完系统调用后,使出核心态执行转变为用户态执行。态执行转变为用户态执行。6 6内存中的睡眠内存中的睡眠 进程已在内存且正处于睡眠状态。如果进程已在内存且正处于睡眠状态。如果进程所执行的系统调用涉及到进程所执行的系统调用涉及到I Io o操作,而进程又须等操作,而进程又须等待它的完成,则进程将进入在内存中睡眠状态。待它的完成,则进程将进入在内存中睡眠状态。7 7外存中的睡眠外存中的睡眠 内存紧张时,在内存中睡眠的进程首先内存紧张时,
30、在内存中睡眠的进程首先被核心换出到外存上,以腾出内存。此时,进程将转变被核心换出到外存上,以腾出内存。此时,进程将转变为睡眠且换出状态。为睡眠且换出状态。8 8被剥夺状态被剥夺状态 当运行进程要从核心态返回到用户态时,当运行进程要从核心态返回到用户态时,核心可剥夺该进程的运行,而调度另一进程。被剥夺运核心可剥夺该进程的运行,而调度另一进程。被剥夺运行的进程便转变为被剥夺状态。被剥夺状态和内存就绪行的进程便转变为被剥夺状态。被剥夺状态和内存就绪状态是等价的。系统状态是等价的。系统v v规定有这两种状态,是为了强调正规定有这两种状态,是为了强调正在核心态运行的进程不能被剥夺,仅当它即将返回用户在核
31、心态运行的进程不能被剥夺,仅当它即将返回用户态时,才能被剥夺。态时,才能被剥夺。2424 操作系统 第六章 U UN NI IX X操操作作系系统统9 9僵死状态僵死状态 当进程执行了当进程执行了exitexit系统调用后,便处于僵死系统调用后,便处于僵死状态。此时进程已不存在,但它留下一个含有状态码和一状态。此时进程已不存在,但它留下一个含有状态码和一些计时统计信息的记录,供父进程收集。些计时统计信息的记录,供父进程收集。2525 操作系统 第六章 U UN NI IX X操操作作系系统统2626 操作系统 第六章 U UN NI IX X操操作作系系统统四四、进程控制、进程控制1.Unix
32、启动及进程树的形成启动及进程树的形成系统自举,将核心装入内存系统自举,将核心装入内存执行执行start,启动启动unix系统系统建立进程建立进程0,核心程序执行,核心程序执行调用调用fork()过程,建立进程过程,建立进程1进程进程1调用调用 ex ec 执行执行“etc/init”,建建终端子进程终端子进程(shell)输入命令,建立终端用户进程输入命令,建立终端用户进程调用调用shell解释程序,搜索并解释命令文件解释程序,搜索并解释命令文件Fork创建子进程创建子进程子进程调用子进程调用ex ec执行执行执行结束执行结束exit()进程树的形成进程树的形成系统调用子进程执行系统调用子进程
33、执行?唤醒父进程唤醒父进程显示提示行显示提示行父进程等待父进程等待2727 操作系统 第六章 U UN NI IX X操操作作系系统统 Fork 流程图流程图有足够的内存有足够的内存区和交换区区和交换区?有足够的空间有足够的空间proc结构块结构块?分配一个空间分配一个空间 proc 的结构项,的结构项,确定一个唯一的进程标识符确定一个唯一的进程标识符将父进程将父进程 proc 结构项中的数据结构项中的数据复制到子进程复制到子进程proc结构中结构中将子进程状态设为创建将子进程状态设为创建父进程的打开文件表引用数增父进程的打开文件表引用数增1当前目录索引节点和当前目录索引节点和根目录引用数增根
34、目录引用数增1父进程父进程 fork 专用保存区中专用保存区中保存进程上下文,以使子进程保存进程上下文,以使子进程被调度时从这里执行被调度时从这里执行在内存中对父进程在内存中对父进程上下文进行逻辑复制上下文进行逻辑复制内存中有足够的内存中有足够的存储区使复制成功存储区使复制成功?将子进程将子进程上下文换出上下文换出子进程入就绪队列子进程入就绪队列是是否否否否否否是是是是创建失败创建失败发生调度且发生调度且调度到子进程调度到子进程?返回返回0返回子程序返回子程序pid2.2.进程的创建进程的创建2828 操作系统 第六章 U UN NI IX X操操作作系系统统3.3.执行一个文件的调用执行一个
35、文件的调用SH子进程子进程SH父进程父进程SH命令命令进程进程forkex ec等待命令等待命令进程结束进程结束wait shell执行过程执行过程2929 操作系统 第六章 U UN NI IX X操操作作系系统统用用C C程序实现如下:程序实现如下:#include include.hmain()main()char comand32;char comand32;char*prompt=char*prompt=“$”;while(while(printfprintf(“%s%s”,prompt),gets(command)!=NULL),prompt),gets(command)!=NUL
36、L)if(fork()=0)if(fork()=0)execlpexeclp(command,command,(char*)0);(command,command,(char*)0);else else wait(0);wait(0);3030 操作系统 第六章 U UN NI IX X操操作作系系统统五、五、UnixUnix进程调度与交换进程调度与交换1.进程调度进程调度1)1)调度原理调度原理 UnixUnix系统的进程调度采用系统的进程调度采用多级反馈循环调度法多级反馈循环调度法,即系,即系统给进程分配一个时间片,当时间片结束时,系统动态计统给进程分配一个时间片,当时间片结束时,系统动态
37、计算进程的优先数,若有优先级高于算进程的优先数,若有优先级高于(优先数小于优先数小于)当前进程当前进程的的“在内存就绪在内存就绪”进程时,系统设置调度标识,在由核心进程时,系统设置调度标识,在由核心态转换至用户态前调度高优先级的进程运行,并把被抢先态转换至用户态前调度高优先级的进程运行,并把被抢先的进程反馈到相应的优先级队列中。一个进程的执行可能的进程反馈到相应的优先级队列中。一个进程的执行可能要经过多次这样的反馈循环。要经过多次这样的反馈循环。时间片是时间片是UNIXUNIX进程调度计算优先数的重要参数,而优进程调度计算优先数的重要参数,而优先数的大小又决定哪个进程将占有先数的大小又决定哪个
38、进程将占有CPUCPU,因此,时间片和优因此,时间片和优先数这两个参数对先数这两个参数对UNIXUNIX进程调度起着举足轻重的作用。进程调度起着举足轻重的作用。3131 操作系统 第六章 U UN NI IX X操操作作系系统统UNIXUNIX进程调度涉及的主要问题是:进程调度涉及的主要问题是:A A、调度时机调度时机B B、调度标志的设置调度标志的设置C C、调度策略与优先数的计算调度策略与优先数的计算D D、调度的实现调度的实现2)2)调度的时机调度的时机A A、进程自动放弃进程自动放弃CPUCPU时时B B、进程由核心态转入用户态时进程由核心态转入用户态时3)3)调度标志的设置调度标志的
39、设置A A、进行调度的标志进行调度的标志runrunrunrunB B、runinruninC C、runoutrunout3232 操作系统 第六章 U UN NI IX X操操作作系系统统4)4)调度策略与优先数的设置调度策略与优先数的设置A A、策略:策略:动态优先动态优先B B、优先数计算:优先数计算:P_P_pripri=P_cpu/2+PUSER+P_nice+NZERO=P_cpu/2+PUSER+P_nice+NZERO5)5)调度的实现:完成进程之间的上下文切换。调度的实现:完成进程之间的上下文切换。A A、确定是否切换确定是否切换B B、选一就绪进程占用选一就绪进程占用CP
40、UCPUC C、恢复选中进程现场恢复选中进程现场3333 操作系统 第六章 U UN NI IX X操操作作系系统统2.2.交换交换交换由交换由0 0号进程完成,号进程完成,过程如下:过程如下:按按换入算法,在交换换入算法,在交换区中查找换入进程区中查找换入进程换入找到的就绪进程换入找到的就绪进程设置设置runout标识标识按换出算法找内存按换出算法找内存中可缓冲进程中可缓冲进程 sched过程流程图过程流程图找到了吗找到了吗?调用调用sleep睡眠睡眠换入成功吗换入成功吗?找到了吗找到了吗?换出找到的换出找到的内存中进程内存中进程设置设置runint标识标识调用调用sleep睡眠睡眠否否否否
41、否否是是是是否否3434 操作系统 第六章 U UN NI IX X操操作作系系统统六六 、进程通信、进程通信1.1.低级通信低级通信A A、利用利用SleepSleep和和WakeupWakeup实现进程间的同步与互斥实现进程间的同步与互斥B B、利用软中断实现同一用户的诸进程间的通信。利用软中断实现同一用户的诸进程间的通信。(软中断软中断信号见信号见160160页,图页,图6.14)6.14)2.2.IPCIPC通信通信A A、消息通信消息通信B B、共享存储区共享存储区C C、信号量机制信号量机制3535 操作系统 第六章 U UN NI IX X操操作作系系统统消息通信:消息通信:队列
42、队列n first last队列队列i first last消息队列表消息队列表 message 0 消息正文消息正文 message 1 message 2 message n 消息正文消息正文 消息表头消息表头 消息表头消息表头 索引表索引表 与实例表的关系与实例表的关系3636 操作系统 第六章 U UN NI IX X操操作作系系统统信号量机制信号量机制进程进程A的虚空间的虚空间区间区间1区间区间2物理空间物理空间共享存储区共享存储区进程进程B的虚空间的虚空间区间区间1区间区间2 共享存储区示意图共享存储区示意图信号量集合表信号量集合表信号量数组信号量数组信号量序号信号量序号KEY2K
43、EY1sem6sem5sem4sem3sem2sem1543210 信号量数组信号量数组共享存储区共享存储区3737 操作系统 第六章 U UN NI IX X操操作作系系统统管道通信(管道通信(pipepipe):):UNIXUNIX提供管道设施提供管道设施pipepipe实现进程间的通信实现进程间的通信,一个进程,一个进程可以把信息写入可以把信息写入PipePipe的左端,另一进程可以从的左端,另一进程可以从PipePipe的右端读的右端读出信息出信息.pipepipe是连接在进程间的可共享文件,称为是连接在进程间的可共享文件,称为pipepipe文件文件。进程可以对进程可以对pipepi
44、pe文件进行读、写操作,写进程可以把信息写文件进行读、写操作,写进程可以把信息写入入pipepipe文件,而读进程从文件,而读进程从pipepipe文件中读取信息。文件中读取信息。3838 操作系统 第六章 U UN NI IX X操操作作系系统统 UNIXUNIX限制限制PipePipe文件的最大长度是文件的最大长度是40964096字节,所以,进程字节,所以,进程通信时若信息量大于通信时若信息量大于40964096字节则要分批传送。当字节则要分批传送。当pIpepIpe已满则已满则写进程必须等待,直到写进程必须等待,直到PiPePiPe有空间时才能继续向有空间时才能继续向pipepipe中
45、写信中写信息;当息;当pipepipe为空时则读进程必须等待,直到为空时则读进程必须等待,直到piPepiPe中有信息时中有信息时才能读出。才能读出。3939 操作系统 第六章 U UN NI IX X操操作作系系统统虚存空间的划分虚存空间的划分VAX-11VAX-11机的地址字长为机的地址字长为3232位,寻址范围为位,寻址范围为2 23232虚拟空间被分成四个功能段,每个功能段最大寻址范围为虚拟空间被分成四个功能段,每个功能段最大寻址范围为2 23030 0 02 23030-1-1 为进程的程序区,称为为进程的程序区,称为P P0 0 区,区,2 230302 23131-1-1 为进程
46、的控制区,称为为进程的控制区,称为P P1 1区。区。2 23131 2 23131+2+230 30-1-1 为系统区为系统区,供多进程共享。供多进程共享。2 23131+2+230 30 2 23232-1-1 为保留区,供扩充功能时用。为保留区,供扩充功能时用。提供了内存与外存之间的进程交换机制提供了内存与外存之间的进程交换机制支持请求调页策略,页式虚存管理支持请求调页策略,页式虚存管理页面的大小一般在页面的大小一般在512512B B4KB4KB之间之间6.6.4 4 UNIXUNIX系统存储器管理系统存储器管理4040 操作系统 第六章 U UN NI IX X操操作作系系统统P0P
47、0区区(程序程序)正文段、正文段、数据段、共享主存段数据段、共享主存段 P1P1区区(控制控制)useruser结构、结构、用户栈、核心栈等用户栈、核心栈等 系统区系统区 操作系统代码和操作系统代码和系统共享的数据结构等系统共享的数据结构等 保留区:扩充功能时用保留区:扩充功能时用0 02 230302 231312 23131+2+230302 23232-1-1进程空间进程空间系统空间系统空间寻址方向寻址方向虚拟空间虚拟空间4141 操作系统 第六章 U UN NI IX X操操作作系系统统2、进程空间地址变换过程、进程空间地址变换过程四、请求调页技术四、请求调页技术1、磁盘块的描述、磁盘
48、块的描述2、页面数据表描述、页面数据表描述(交换区,可执行文件等)(交换区,可执行文件等)类型类型块号块号设备号设备号图图 6.29 磁盘块描述项磁盘块描述项其他其他队列指针队列指针逻辑设备逻辑设备号与块号号与块号引用该页的引用该页的进程数进程数页页状态状态页面号页面号图图 6.30 pfdata描述项描述项4242 操作系统 第六章 U UN NI IX X操操作作系系统统3、请求调页数据结构之间的关系、请求调页数据结构之间的关系页面号页面号794页表项页表项设备号设备号1 块号块号2743磁盘块描述项磁盘块描述项页面号页面号794引用数引用数1设备号设备号1块号块号2743Pfdata项项
49、1493K 内存页面内存页面794 空闲页面链表空闲页面链表 图图 6.31 请求调页用数据结构间的关系请求调页用数据结构间的关系4343 操作系统 第六章 U UN NI IX X操操作作系系统统4、请求调页处理过程、请求调页处理过程由磁盘块描述项得设备号与块号由磁盘块描述项得设备号与块号查查空闲页面链表空闲页面链表把空闲页面链中的把空闲页面链中的对应页面写入内存对应页面写入内存图图 6.32 请求调页的调入基本处理过程请求调页的调入基本处理过程存在相应的存在相应的Pfdata项,项,且其中设备号与块号与且其中设备号与块号与磁盘描述项中的相同磁盘描述项中的相同?第第31位位1?允许访问允许访问?Sched过程过程换入该页换入该页否否否否否否是是是是是是V=0从空闲页面链中从空闲页面链中撤除该页面撤除该页面修改相应的页表项修改相应的页表项 返回返回 返回返回 返回返回 出错返回出错返回read过程读入该页过程读入该页4444 操作系统 第六章 U UN NI IX X操操作作系系统统5、最不经常使用淘汰原理、最不经常使用淘汰原理页在页在内存内存 1 2 3 页页不在内存不在内存 n 年龄位增长年龄位增长(未被访问时)(未被访问时)换入换入换出换出图图 6.33 最不经常使用淘汰原理最不经常使用淘汰原理4545