九章节UNIX操作系统ppt课件.ppt
《九章节UNIX操作系统ppt课件.ppt》由会员分享,可在线阅读,更多相关《九章节UNIX操作系统ppt课件.ppt(122页珍藏版)》请在三一办公上搜索。
1、第九章 UNIX 操作系统,9.1 UNIX 系统概述9.1.1 UNIX 系统的发展发展历史1965年 由AT&T,MIT和GE联合开发Multics ( Multiplexed Information and Computing Service) 1969年 Ken Thompson 和 Dennis Ritchie在PDP7上用汇编语言开发出UNIX,1970年 在PDP-11系列机上(11/20,11/40,11/45) 用汇编开发出UNIX v.1。在此过程中, 机器的硬件逐渐复杂,UNIX所支持的特 征也不断丰富,增加了文字处理程序。1975年 发表UNIX v.6 并广泛扩散到大
2、学和科研 单位, 为后期发展奠定了良好的基础1978年 优化后发布UNIX v.7 - UNIX的第一个 商业版本 - 我国开始研究应用的最早版本,1981年 AT&T发布UNIX System III, 完全转向为 社会提供的商品软件1983年 AT&T发布UNIX System V, 系统功能已 趋于稳定和完善. 此后System V又有一系 列的公布号: 1.0/2.0/2.3/3.5/4.0/4.2 等, 现在最后版本为 System V Release 4(SVRV),9.1.2 有代表性的其它版本,加州大学伯克利分校的BSD (Berkeley Software Distribut
3、ion)版本, 主要用于工 程设计和科学计算Microsoft和SCO公司开发的SCO XENIX SCO UNIX 和 OpenServer等, 主要应用 在基于Inter x86体系结构的系统上开放源代码的Linux, UNIX的体系结构加 MS Windows形式的图形用户界面,主要 应用在基于Inter x86体系结构的系统上,9.1.3 UNIX系统特征,可移植性强 . UNIX操作系统大量代码为C语言编写 . C语言具有跨平台特性 2. 多用户、多任务的分时系统 . 人机间实时交互数据 . 多个用户可同时使用一台主机 . 每个用户可同时执行多个任务3. 软件复用 . 每个程序模块完
4、成单一的功能 . 程序模块可按需任意组合 . 较高的系统和应用开发效率,与设备独立的输入/输出操作 . 打印机、终端视为文件 . 输入/输出操作与设备独立界面方便高效 . 内部: 系统调用丰富高效 . 外部: shell命令灵活方便可编程 . 应用: GUI 清晰直观功能强大安全机制完善 . 口令、权限、加密等措施完善 . 抗病毒结构 . 误操作的局限和自动恢复功能,多国语言支持 . 支持全世界现有的几十种主要语言网络和资源共享 . 内部: 多进程结构易于资源共享 . 外部: 支持多种网络协议系统工具和系统服务 .100多个系统工具(即命令),完成 各种功能 .系统服务用于系统管理和维护,9.
5、1.4 UNIX系统组成,计算机系统有四大资源-处理机、存储器、文件、设备,一、 UNIX系统核心的结构,库函数,系统调用接口,文件子系统,进程控制 子系统,进程间通信,调度,存储管理,高速缓存,字符设备 块设备,设备驱动程序,硬件控制,硬件,核心级,硬件级,用户级,核心级,用户程序,捕俘,UNIX核心的框图,SHELL,二、Unix系统的组成,UNIX可分为四个层次。最低层是硬件,它是整个系统的基础;次低层是OS核心;其次是OS与用户的接口SHELL、编译程序等;最高层是用户程序。内核:是Unix系统的核心部分,能与硬件直接交互,常驻内存。,驻留(基本)模块:完成输入/输出、文件、设备、内存
6、和处理器时钟的管理,常驻内存。系统工具:通常称为shell。是Unix操作系统的一部分,是用户与Unix交互的一种接口。常驻磁盘,在用户登录时即调入内存。,三、进程控制子系统,进程控制子系统负责管理处理机、存储器。它的功能有:1、进程控制-应用程序利用系统调用fork创建一个新进程;利用系统调用exec执行一个满足条件的进程;利用系统调用exit结束一个程序的执行。,2、进程通信3、存储器管理4、进程调度-将满足运行条件的程序(进程)调入内存,安排一个时间片。,四、文件子系统,文件子系统负责文件、设备资源的管理。它的功能有:1、文件管理2、高速缓冲机制-设置多个缓冲区以匹配I/O的速度。3、设
7、备驱动程序,9.1.5 Uinx操作系统的启动流程,9.1.6 用户分类和用户职责,一、用户分类1、超级用户2、普通用户二、职责,9.1.8 用户登录与退出,超级用户:通过“root”登录 退出命令:1、shutdown or2、haltsys普通用户:通过自己的UID登录 退出命令:exit or Ctrl+d,9.2 文件管理,UNIX的文件系统的功能很强,又很灵活。UNIX文件系统的概述1、特点:文件的组织是分树形结构-是倒树形结构。每个用户可以建立自己的文件系统。文件的物理结构为混合索引式文件结构-文件的物理结构可能包括多种索引文件结构形式(单级索引、两级索引和多级索引文件结构形式。这
8、种物理结构查询速度快、节省存放文件地址所需的空间。,采用了成组链接法管理空闲盘块-是空闲表法和空闲链法的产物,提高了查找空闲盘块的速度,节省了存放盘块号的存储空间。引入了索引结点的概念-在UNIX系统中,把文件名和文件的说明分开,即分别作为目录文件和索引结点表中的一个表项,这样既可提高文件的检索速度,又能减轻通道的I/O压力。,2、文件系统的特点由于文件名和文件属性(说明)分开存放,文件属性构成文件的索引结点,这使UNIX的目录项与一般文件系统的目录项不同,故UNIX文件系统的结构与一般的文件有所差异。应该是按文件的用途和类别存放。下面的图中,根目录中的bin是二进制系统文件的子目录;usr是
9、用户文件的根目录;dev是特殊文件的根目录。,i,i,i,i,i,root目录表,bin的目录表,usr的目录表,dev的目录表,3、文件系统的资源管理为了在系统中保存一份文件,就需花费资源,当文件处于“未打开”状态时,文件需占用三种资源:一个目录项-用以记录文件的名称和对应索引结点的编号;一个磁盘索引结点项-用以记录文件的属性和说明信息(在磁盘上);若干个盘块-用于保存文件本身。当文件处于“打开”状态时,须增加三种资源:,一个磁盘索引结点项-用以记录文件的属性和说明信息(在磁盘上);若干个盘块-用于保存文件本身。当文件处于“打开”状态时,须增加三种资源:,一个内存索引结点项(驻留内存);文件
10、表中的一个登记项;用户文件扫描符表中的一个登记项。由于对文件的读写管理,必须涉及上述资源,所以对文件的管理就包括:对索引点的管理对空闲盘块的管理对文件目录的管理对文件表和描述符表的管理对文件的使用。,9.3 进程的描述,在UNIX系统中,采用段页式存储管理方式(段称为区-Region).一个进程实体由若干个区组成(程序区、数据区、栈区、共享存储区),每个区可分若干页。UNIX中为每个进程配置一个进程控制块(PCB)用于控制和管理进程。PCB由四部分组成。,1、进程表项(核心数据)2、U区(扩充信息)3、进程区表(存放段的起地址始、指向系统区表中对应区表项的指针)4、系统区表项(存放各个段在物理
11、存储器中的位置),9.2.1 进程的数据结构(PCB),一、进程表项(Process Table Entry):包含如下的内容:1、进程标识符(PID) 是唯一标识进程的某一整数;2、用户标识符(UID) 是标识拥有该进程的用户;,3、进程状态 表示该进程的当前状态;4、事件描述符 记录使进程进入睡眠状态的事件;5、进程和U区在内存或外存的地址,核心可利用这些信息做上、下文切换;,6、软中断信号 记录其它进程发来的软中断信号;7、计时域 给出进程的执行时间和对资源的利用情况;8、进程的大小 核心根据进程的大小来为其分配存储空间;,9、偏置值nice(加权系数) 供计算该进程的优先数时用,用户可
12、自定;10、PLink 指向就绪队列中下一个PCB的指针;11、指向U区进程正文、数据及栈在内存区域的指针。,二、U区(U Area),每个进程都有一个私用的U区,其中包含内容:1、进程表项指针 指向当前(正在执行)进程的进程表项;2、真正用户标识符u-ruid(real user ID)它是超级用户分配给普通用户的标识符,以后每次用户登录进入系统时,均必须输入此标识符;,3、有效用户标识符u-euid(effective user ID)可用系统调用setuid改变为其它用户,以获得对该用户的文件访问权;4、用户文件描述符表 记录该进程已打开的所有文件;5、当前目录和当前根 给进程的文件系统
13、环境,6、计时器 记录进程在核心态和用户态的运行时间;7、内部I/O参数 给出要传输的数据量,源(或目标)数据的地址,文件的输入/输出偏移量;8、限制字段 指对进程的大小及其“写”的文件大小的限制。,三、系统区表(System Region Table),系统V把一个进程的虚地址空间划分为若干个连接的逻辑区:正文区、数据区、栈区等。这些区是可被共享和保护的独立体。多个进程可共享一个区。例如:多个进程共享一个正文区,即几个进程将执行同一个程序;同样,多个进程也可共享一个数据区。为了对区进行管理,在核心中设置了一个系统区表,以记录区的有关信息:1、区的类型和大小;2、区的状态 (一个区有:锁住、在
14、请求、在装入过程中、有效-区已装入内存);3、区在物理存储器中的位置;4、引用指针 共享该区的进程数;5、指向文件索引结点的指针,四、本进程区表(Per Process Region Table),为了记录进程的每个区在进程中的虚地址,并通过它找到该区在物理存储器中的实地址,系统为每个进程配置了一张进程区表。表中每一项记录一个区的起始虚地址及指向系统区表中对应的区表项。这样,核心通过查找进程区表项和系统区表,便可将该区的逻辑地址转换为物理地址。这里使用两张表实现是便于区的共享。下图说明了其过程:A、B两个进程的进程区表和系统区表。在A进程区表中的正文区、数据区和栈区的指针,分别指向相应于a、b
15、、c区的系统区表项。B进程区表中的正文区、数据区和栈区,分别指向相应于a、d、e三个系统区表项,由于A 和B进程共享正文区,所以它们都指向同一个正文区a。,正文数据栈,正文数据栈,ab cde,a,b,c,d,e,A进程区表,B进程区表,系统区表,进程区表项、系统区表项和区的关系,A、B共享正文区,进程的数据结构:,U区,abc,a,b,c,进程表,本进程区表,系统区表,9.2.2 进程状态及其转换,一、进程状态UNIX中,把进程执行状态分为两种(用户态执行、系统态执行),前者是进程正处于用户状态中执行,运行可被中断;后者是核心状态执行(系统调用中断后便进入核心状态)运行不能中断。为进程设置了
16、九种状态:1、核心态执行2、用户态执行3、内存中就绪,4、被剥夺状态5、就绪/换出6、内存中睡眠7、睡眠/换出8、创建状态-在父进程执行fork系统调用创建子进程期间,新被创建的子进程便处于“僵死”状态;9、僵死状态-在执行exit系统调用后的状态。,4,2,1,3,8,5,9,6,7,进程状态的转换,用户态执行,返回到用户态,被剥夺,内存中就绪,内存足,创建fork,内存不足,就绪/换出,换入,换出,唤醒,睡眠/换出,内存中睡眠,睡眠,唤醒,换出,核心态执行,调度,剥夺,返回,系统调用中断,中断中断返回,僵死,二、 进程映像,在UNIX系统中,进程是进程映像(Process Image)的执
17、行过程。进程映像也就是正在执行的进程实体。它由三部分组成:用户级上、下文,寄存器上、下文和系统级上、下文。一、用户级上、下文:主要是用户程序,它在系统中分为正文区和数据区。正文区是只读的,主要是一些程序。在进程执行时,可利用用户栈区保存中间结果。,二、寄存器上、下文,由CPU中的如下寄存器构成:1、程序寄存器 存放CPU要执行的下条指令的虚地址;2、处理机状态寄存器(PSR) 其中包括运行方式(用户态、系统态)、处理机当前的运行级等相关信息;3、栈指针4、通用寄存器,三、系统级上、下文,其中包括OS为进程管理该进程所用的信息:1、静态部分-在进程的整个生命期中,系统级上、下文大小保持不变,它由
18、三部分组成:进程表项 每个进程占一个表项(记录进程的状态等相关信息)U区进程区表项、系统区表项、页表,用于实现进程的虚地址到物理地址的映射。2、动态部分-是可变的,它包括:核心栈;若干层寄存器上、下文。,用户级上、下文进程正文数据栈共享数据系统级上、下文静态部分,进程表项U区本进程区表,核心栈第3层第2层的保护的寄存器上、下文核心栈第3层第2层的保护的寄存器上、下文核心栈第3层第2层的保护的寄存器上、下文核心上、下文0层,上、下文静态部分,上、下文动态部分,进程上、下文的组成,9.2.3 进程的控制,在UNIX系统中,只设置了进程,它是一个独立拥有资源、独立调度的基本单位。UNIX系统中的系统
19、调用有:1、fork-创建一个新进程2、exec-改变进程的原有代码3、exit-实现进程的自我终止4、wait-将调用进程挂起,等待子进程终止5、getpid-获取进程标识符6、nice-改变进程的优先级。,一、fork系统调用:在UNIX系统中,只有0进程是在系统引导时被创建的,在系统初启时由0进程创建1进程,以后0进程变为对换进程,1进程成为系统中的始祖进程。UNIX利用fork为每个终端创建一子进程为用户服务(如:等待用户登录、执行shell命令解释程序等)。每个终端又可用fork来创建其子进程,从而形成一棵进程树。系统中除进程外的所有进程都是用fork创建的。fork的系统调用格式:
20、 int fork();fork系统调用设有参数,如果执行成功,则创建一个子进程。,核心为fork完成如下操作:1、为新进程分配一进程表项和进程标识符;2、检查同时运行的进程数目;3、拷贝进程表项中的数据;4、子进程继承父进程的所有文件;5、为子进程创建进程上、下文;6、子进程执行。,二、exec系统调用:fork系统调用只是将父进程的用户级上、下文拷贝到新进程中,而exec系统调用将可执行的二进制文件覆盖在新进程的用户级上、下文的存储空间。exec系统完成的操作:1、对可执行文件进行检查;2、回收内存空间;3、分配存储空间;4、拷贝参数。,三、exit系统调用:Unix系统;利用exit来实
21、现进程的自我终止。核心需为exit完成:1、关闭软中断;2、回收资源;3、写相关信息;4、置进程为“僵死”状态。,四、wait系统调用:用于进程挂起。核心为wait完成的操作:1、首先查找调用进程是否有子进程,若无,则返回出错信息;2、若找到一个“僵死状态”的子进程,则将子进程的执行时间加到父进程的执行时间上,并释放子进程表项;3、若未找到处于“僵死状态”的子进程,则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒。,9.2.4 进程调度,UNIX系统是分时系统,系统未设置作业调度。对进程的调度采用多级反馈队列轮转调度方式。1、优先级分类:核心优先级;2、优先级的计算:系
22、统V中的用户优先级是可变的。它随占用CPU的时间越长而降低。核心每隔1秒钟便按如下公式计算各进程的用户优先级: 优先数= +基本用户优先数,最近使用CPU的时间,2,9.3 进程切换9.3.1 进程的同步与通信,9.3.2 管道,UNIX系统的“管道”是OS的首创。这也是UNIX系统的一大特色。所谓“管道”,是指能够连接一个写进程和一个读进程的,并允许它们以生产者-消费者方式进行通信的一个共享文件(pipe文件)。由写进程从管道的入端将数据写入管道,而读进程则从管道的出端读出数据。一、管道类型:1、无名管道(Unnamed Pipes)-是一个临时文件,是利用系统调用pipe()建立的无名文件
23、。2、有名管道(Named Pipes)-可在文件系统中长期存放、具有路径名的文件。,二、pipe文件的建立,进程利用pipe系统调用来建立一无名管道。其语法格式: int pipe(filedes); int filedes2;核心创建一条管道须完成的工作:1、分配磁盘和内存索引结点;2、为读进程分配文件表项;3、为写进程分配文件表项;4、分配用户文件描述符。,fp,fp,foffsetfinodeFWRITEFPIPEfoffsetfinodeFREADFPIPE,第i个索引结点,Pipe文件,用户文件描述符,文件表,内存索引结点,外存,ipe系统调用工作时所涉及的数据结构,三、对无名管道
24、的读写,1、对pipe文件大小的限制:为提高运行效率,pipe文件只使用索引结点中的直接地址项iaddr(0)iaddr(9)。核心将索引结点中的直接地址项作为一个循环队列来管理,为它设置一个读指针和一个写指针,按先进先出顺序读、写。2、进程互斥:依靠上锁/解锁来控制读、写进程访问pipe 文件。3、进程写管道4、进程读管道,9.3.3 消息,消息(message)是一个格式化的可变长的信息单元。消息机制允许一个进程给其它任意的进程发送一个消息。当一进程收到多个消息时,可将它们排成一个消息队列。UNIX系统中,消息机制向用户提供了四个系统调用,分别用于建立、发送和接收消息。一、消息机制的数据结
25、构:系统将消息分为首部、数据区。,1、消息首部记录消息的类型、大小、这指向消息数据区的指针、消息队列的链接指针等。2、消息队列头表-在每一个消息队列的消息头中,包含了指向消息队列第一个消息的指针和指向最后的一个消息的指针、队列中消息的数目、队列中消息数据的总字节数、队列所允许的消息数据的最大字节总数、最近一次执行发送操作的进程标识符和时间、最近一次执行接收操作的进程标识符和时间。,二、消息队列的建立和消息队列描述符的获取,每个消息队列有一个由用户指定的关键字(key)。消息队列还有一个消息队列描述符。进程可利用系统调用msgget来建立一个消息队列或获取一消息队列描述符。其格式: int ms
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 UNIX 操作系统 ppt 课件
链接地址:https://www.31ppt.com/p-2012790.html