1、UNIX操作系统主讲:陈笑蓉贵州大学计算机科学与技术学院1.UNIX操作系统是一个功能很强而且是十分灵活的操作系统和计算机环境;2.是使用非常方便的软件开发环境;3.是当代最有代表性的多用户多任务分时系统。主要内容 UNIX操作系统的发展和特点 UNIX的系统结构 UNIX进程管理 进程调度 进程通信 UNIX存储管理 UNIX设备管理 UNIX操作系统的文件管理 9.1 UNIX操作系统的发展和特点 20世纪6070年代,AT&T的Bell实验室的Ken 和;C语言的诞生,为了写UNIX 1978年UNIX V7产生,1982年UNIX System III(V7+PWB+UNIX/RT)1
2、978年Berkeley分校发布3BSD(虚拟存储器支持、按需分页支持),1979年4BSD(internet支持),1993年4.4BSD(新文件系统)4.3BSD4.3BSD4.3BSD TahoeSVR3.1SVR3.04.4BSDSVR3.2SVR4POSIX.1ANSI CXPG31986198719881989199019911992SVR:SYSTEM VUNIX标准化 80年代UNIX版本的剧增以及各种UNIX版本之间的差别不断扩大导致了许多用户(例如美国政府)要求对其标准化,以增强各种应用程序在这些UNIX操作系统之间的可移植性。其中几个重要的标准包括:。所有这些标准只是界面
3、的规格说明(例如,网络界面,进程间的通信,系统管理等),而具体实施则留给制造商。UNIX的基本特点 1.多用户多任务的分时系统 2.良好的界面 3.可移植性强 4.配置灵活 5.具有一个可装卸的分层树型结构文件系统 6.安全机制完善 7.丰富的网络功能 UNIX 的界面 UNIX有两种界面,一个是命令控制界面,一个是编程界面。命令控制界面是通过Shell提供给用户使用。编程界面是UNIX系统的系统调用以标准实用子程序形式提供给用户编程中使用,从而减少用户程序设计和编程难度,节省用户的程序设计和编程时间。基本命令控制界面命令控制界面包括:系统访问命令,例如 login,logout 等。编辑和文
4、件管理命令,例如 vi,emacs,cp,rm 和ls 等。编程、链接命令,例如 cc,link 等。维护、管理命令,例如 adduser,chown 等 调试命令,例如 dbx 等。记帐、日期等命令,例如 date 等。网络通信命令,例如 mailx 等。特殊命令包括:后台命令“&”文件名生成符号“*”和“?”输入输出重定向符号“”、“”和“”管道命令“”进程1 pipe进程2 图9 1 unix 的管道机制 编程界面:编程界面:文件操作类:open();fopen();write();read();close();fclose()进程控制类:fork();wait();kill();sig
5、nal();pipe();sleep();信号与时间类:time();stime();date();具体使用请用man 帮助。如man fopen9.2 UNIX的系统结构 UNIX系统结构分为三层:最内层是UNIX操作系统核心,它包括文件控制系统和进程控制系统两大部分。中间层是shelll命令解释层、实用程序、库函数。该层中的shell解释程序是用户和UNIX操作系统的界面。最外层是用户程序,包括许多应用软件。UNIX的系统结构如下图(9-2)所示 UNIX 系统核心的体系结构 在UNIX操作系统的核心部分有两个子系统:文件子系统 进程控制子系统 核外程序通过引用两组被明确定义的系统调用与核
6、心交往,其中一组用于与文件系统的交互作用,另一组与进程控制子系统的交互作用。如图9 3 所示.。系系 统统 调调 用用 接接 口口文文 件件 子子 系系 统统进进 程程 控控 制制子子 系系 统统进程内部信进程内部信进程调度进程调度内存管理内存管理高 速 缓高 速 缓冲冲字符设备字符设备 块设备块设备 设备驱动器设备驱动器 硬硬 件件 控控 制制图 93 UNIX系统内核框图 内核层内核层硬硬 件件硬件层硬件层内核层用户程序用户程序用户层 系统调用接口系统调用接口:系统调用接口是操作系统提供给编程人员的接口。编程人员通过系统调用使用操作系统内核提供的各种功能。系统调用的执行不同于一般用户程序的
7、执行。系统调用执行是在核心态下执行系统子程序,而用户程序则是在用户态下执行。UNIX的系统调用由一条访管指令陷阱或陷阱指令实现(trap)。该指令是一条机器指令,其操作数部分对应于系统调用的编号。另外,在系统中有一张系统调入口表,用来指示各系统调用处理程序的入口地址。文件子系统文件子系统 文件管理:用于为文件分配存储空间,管理空闲盘块,控制对文件的存取,以及为用户检索数据。高速缓冲机制:缓冲机制与I/O设备驱动程序间交互作用,以控制各种外设到核心的数据传送和核心到外设的数据传送。设备驱动程序:用以控制I/O 设备进行操作的核心模块 进程控制子系统进程控制子系统 进程控制:fork,exec,e
8、xit,进程通信:原语,软中断,管道,socket,存储器管理:采用了段页存储管理方式;进程调度:多级反馈轮转调度算法。9.3 UNIX进程管理 整个UNIX系统就是一个进程家族,有一个最高的祖先。一般情况下,UNIX系统的进程家族树如下图9-4所示,和是UNIX系统中两个最重要的进程,其中0进程是UNIX系统中唯一只在核心态下运行的进程。它有三种功能:,所有其他进程都由1进程直接或间接创建。交换进程交换进程 0#init进程进程 1#inetd进程进程syslog进程进程终端登录进程终端登录进程(login)用户用户shell进程进程用户子进程用户子进程用户子进程用户子进程图94 UNIX系
9、统进程树结构 进程的数据结构 在UNIX系统V中,把PCB 分成两部分,一是进程表项,称为proc结构。其中含有最常用的信息,由核心对它们进行存取;另一部分是U区,称为user结构。存放进程表项的一些扩充信息,它只能被运行在核心态的进程所存取。UNIX系统把一个进程的虚拟地址空间划分为若干个连续的逻辑区,有正文区、数据区、栈区等。为了对区进行管理,在核心中设置了一个系统区表(简称区表),各表项中记录了描述活动区的有关信息。进程区表中每一项记录一个区的起始虚地址及指向系统区表中对应的区表项。存储盘区表存储盘区表ABC物理盘区物理盘区本进程区表本进程区表虚地址(正文)虚地址(正文)1虚地址(数据)
10、虚地址(数据)2虚地址(栈)虚地址(栈)3进程控制表进程控制表PCBU区区 进程表进程表ABC系统区表系统区表 扩充扩充信息信息表项区表项区进程的状态 用户态运行用户态运行 在在CPU上执行用户程序;上执行用户程序;核心态运行核心态运行 在在CPU上执行核心程序;上执行核心程序;在内存就绪在内存就绪 具备运行条件,只要内核调度就能执行;具备运行条件,只要内核调度就能执行;在内存睡眠在内存睡眠 进程处于内存中,只有等到某事件发生后才能执行;进程处于内存中,只有等到某事件发生后才能执行;在外存就绪在外存就绪 进程处于就绪状态,但是在其被内核调度去执进程处于就绪状态,但是在其被内核调度去执行之前必须
11、被交换进内存;行之前必须被交换进内存;在外存上睡眠在外存上睡眠 进程在等待某事件发生,并被交换到外存上;进程在等待某事件发生,并被交换到外存上;被剥夺状态被剥夺状态 被调度程序剥夺了处理机后的进程状态;被调度程序剥夺了处理机后的进程状态;创建态创建态 新进程被创建,还不能运行;新进程被创建,还不能运行;终止态终止态 进程终止自己。进程终止自己。返回返回用户用户消失消失睡眠睡眠系统调用,系统调用,中断中断唤醒唤醒唤醒唤醒交交换换出出交交换换出出交交换换进进436527198重新重新调度调度进程进程返回返回内核运行内核运行抢占抢占有足够内存有足够内存fork睡眠,交换出睡眠,交换出睡眠,交换出睡眠
12、,交换出用户运行用户运行创建创建(内存不够)(内存不够)僵死僵死被抢占被抢占中断,中断返中断,中断返回回进程上下文 用户级上下文:由进程的用户程序段部分编译而成的用户正文段、用户数据、用户段和共享存储器组成。共享存储区用于实现进程间的通信.寄存器上下文;系统级上下文:静态级上下文和动态级两部分。静态部分包括:PCB 结构(proc结构和user结构)、进程区表项、系统区表项和页表以及核心栈,区表和页表用于实现进程的虚地址到物理地址的转换,核心栈主要用来装载进程中所使用系统调用的调用序列。动态部分包括:进程在执行时使用的核心栈、若干层寄存器上下文 用户级上下文用户级上下文进程正文进程正文用户数据
13、用户数据用户栈用户栈 寄存器上下文寄存器上下文PC的值的值PSW的值的值栈指针栈指针通用寄存器通用寄存器的值的值 系系 统统 级级 上上 下下 文文 静态部分静态部分 动态部分动态部分 静态部分静态部分proc结构结构user结构结构进程区表进程区表页表页表核心栈第3层保护第保护第2层的寄存器上下层的寄存器上下文文核心栈第核心栈第2层层保护第保护第1层的寄存器上下层的寄存器上下文文核心栈第核心栈第1层层保护第保护第0层的寄存器上下层的寄存器上下文文第第0层层寄存器上下文寄存器上下文9.4 9.4 进程调度进程调度 UNIXUNIX系统是分时系统,因而未设置作业调度。对进系统是分时系统,因而未设
14、置作业调度。对进程的调度采用多级反馈队列轮转调度方式。相应地,程的调度采用多级反馈队列轮转调度方式。相应地,在系统中便为就绪进程设置了多个就绪队列。在系统中便为就绪进程设置了多个就绪队列。调度程序在进行调度时,总是先从最高优先级队列调度程序在进行调度时,总是先从最高优先级队列中,取出排在队列最前面的进程。仅当最高优先队中,取出排在队列最前面的进程。仅当最高优先队列中没有进程时列中没有进程时,才从次高优先级队列中找出其队才从次高优先级队列中找出其队首进程,令他执行一个时间片后,又剥夺该进程的首进程,令他执行一个时间片后,又剥夺该进程的执行,将该进程放到下一个优先级队列的末尾,再执行,将该进程放到
15、下一个优先级队列的末尾,再从优先级最高的队列中取出下一个就绪进程投入运从优先级最高的队列中取出下一个就绪进程投入运行。行。9.5 进程通信 UNIX System VUNIX System V的进程通信有三种方式:的进程通信有三种方式:信号信号:是对硬件中断的一种模拟,也称是对硬件中断的一种模拟,也称为软中断。这种方为软中断。这种方式是利用软中断信号实现同一用户的各进程之间的通信。式是利用软中断信号实现同一用户的各进程之间的通信。这种通信的目的是通知对方发生了异步事件。这种通信的目的是通知对方发生了异步事件。管道管道:一个管道的执行将用到两个一个管道的执行将用到两个file file 数据结构
16、,它们数据结构,它们其中一个进程可以向管道写,而另一个进程从管道读其中一个进程可以向管道写,而另一个进程从管道读.IPCIPC机制(进程间通信)机制(进程间通信):IPCIPC机制包括消息队列、共享内机制包括消息队列、共享内存和信号量三种存和信号量三种.9.6 UNIX存储管理 UNIX系统V中采用了请求分页存储管理机制和对换机制。这样,当进程运行时不必整个进程的映象都在内存,而只需在内存保留当前用到的页面。当进程访问到某些尚未在内存的页面时,就由核心把这些页面装入内存。缓存技术 UNIX UNIX 采用了一系列涉及到高速缓存的内存管采用了一系列涉及到高速缓存的内存管理技术。理技术。缓冲区缓存
17、缓冲区缓存 页缓存页缓存 交换缓存交换缓存 硬件缓存硬件缓存 UNIXUNIX使用最近最少使用策略(使用最近最少使用策略(LRULRU)决定把)决定把哪个页面换出。哪个页面换出。页面的页面的“年龄年龄”变量表示页面的被访问次数。变量表示页面的被访问次数。初始值默认为初始值默认为3 3,每访问一次,值增加,每访问一次,值增加3 3,直,直到最大值到最大值2020;每当交换进程尝试换出一页时,;每当交换进程尝试换出一页时,年龄值减年龄值减1 1,直到,直到0 0。变量。变量“年龄年龄”值越小,值越小,页面越页面越“老老”,老的页面,首先被换出。,老的页面,首先被换出。9.7 UNIX设备管理 UN
18、IXUNIX系统中也将设备分为两类,块设备和字符设备。系统中也将设备分为两类,块设备和字符设备。对这些设备管理的目的之一是使特定硬件设备的特对这些设备管理的目的之一是使特定硬件设备的特性与用户无关,这种特征称为透明性,在性与用户无关,这种特征称为透明性,在UNIXUNIX中,中,大部分大部分I/OI/O设备的特性由于设备的特性由于I/OI/O系统的缘故甚至对内系统的缘故甚至对内核也是透明的。核也是透明的。I/OI/O系统是由一个超高速缓存系统、一般设备的驱系统是由一个超高速缓存系统、一般设备的驱动程序和特殊设备的驱动程序构成的、现又增加了动程序和特殊设备的驱动程序构成的、现又增加了一种网络界面
19、,主要用于支持网络的一种网络界面,主要用于支持网络的I/OI/O操作。操作。设备驱动程序 UNIXUNIX系统中每类设备都有一个驱动程序,设备系统中每类设备都有一个驱动程序,设备驱动程序是驱动物理设备和驱动程序是驱动物理设备和DMADMA控制器或控制器或I/OI/O控控制器等直接进行制器等直接进行I/OI/O操作的子程序集合。操作的子程序集合。它们负责设置相应设备有关寄存器的值,启动它们负责设置相应设备有关寄存器的值,启动设备进行设备进行I/OI/O操作,指定操作的类型和数据流操作,指定操作的类型和数据流向等。向等。9.8 文件管理 UNIXUNIX文件系统具有四个显著特点:文件系统具有四个显
20、著特点:1 1有层次的多级树型目录结构,而且还是可以灵有层次的多级树型目录结构,而且还是可以灵活装卸的文件系统;活装卸的文件系统;2 2把输入把输入/输出的硬件和特别文件连接起来;输出的硬件和特别文件连接起来;3 3对对I/OI/O设备的存取和对普通磁盘文件的存取一样设备的存取和对普通磁盘文件的存取一样看待,统一化为文件处理,从而简化了用户的操看待,统一化为文件处理,从而简化了用户的操作;作;4 4对文件提供了良好的保护机构。对文件提供了良好的保护机构。文件系统存储结构 索引点是指在索引点是指在UNIXUNIX的文件系统中,每一个文的文件系统中,每一个文件都有一个且仅有一个主结点,简称件都有一
21、个且仅有一个主结点,简称i i结点。结点。i i结点中包含的是对应文件的特征参数,如文结点中包含的是对应文件的特征参数,如文件类型,文件长度,文件存放位置等。件类型,文件长度,文件存放位置等。所有文件的所有文件的i i结点组成系统的结点组成系统的i i结点表,它存结点表,它存放了该文件系统中的所有放了该文件系统中的所有i i结点,主结点从结点,主结点从0 0号开始依次向后编号号开始依次向后编号.文件的寻址 1 1直接寻址方式直接寻址方式2 2一次间接寻址方式一次间接寻址方式3 3多次间接寻址方式(二次间接寻址、三次多次间接寻址方式(二次间接寻址、三次间接寻址)间接寻址)空闲盘块的管理 UNIX
22、系统采用成组链接法对空闲磁盘加以组织,系统将若干空闲块组成一个组,将每组中的盘.目录文件/dev/bin/lib/etc/usr/mnt/tmp/usr1/usr1图922 Unix文件系统一般目录结构文件的常用命令 1 1 文件管理命令文件管理命令 lsls 列当前目录文件;列当前目录文件;cp cp 复制文件;复制文件;2 2 文本加工命令文本加工命令 cat cat 显示文件内容;显示文件内容;pr pr 打印机打印文件内容;打印机打印文件内容;3 3 软件开发软件开发 cc Ccc C语言编译程序;语言编译程序;vi vi 全屏幕编辑程序。全屏幕编辑程序。4 4 进程管理进程管理 psps 显示当前各进程状况;显示当前各进程状况;kill kill 终止进程;终止进程;sleep sleep 使进程睡眠;使进程睡眠;&使命令在后台执行。使命令在后台执行。5 5 通信通信 6 6 系统维护和服务系统维护和服务 mount mount 安装文件卷到指定目录;安装文件卷到指定目录;unmountunmount 拆文件卷拆文件卷 who who 显示系统各用户状态。显示系统各用户状态。