收藏 分享(赏)

第9章unix系统.ppt

上传人:Facebook 文档编号:2348922 上传时间:2018-09-11 格式:PPT 页数:92 大小:1.09MB
下载 相关 举报
第9章unix系统.ppt_第1页
第1页 / 共92页
第9章unix系统.ppt_第2页
第2页 / 共92页
第9章unix系统.ppt_第3页
第3页 / 共92页
第9章unix系统.ppt_第4页
第4页 / 共92页
第9章unix系统.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

1、1,第九章 UNIX操作系统,1 UNIX操作系统的历史和基本结构 2 UNIX系统调用 3 进程管理 4 存储管理 5 设备管理 6 文件管理 7 系统初启 8 (Shell)外壳 9 LINUX,2,图9-1 UNIX的创始人,1 UNIX操作系统的历史和基本结构,1974年ACM通信上发表了K. Thompson 和 D. Ritchie的论文“The UNIX Time-Sharing System”,UNIX系统公布于世。,一、发展历史,3,设计指导思想:为广大的计算机用户提供一种良好的程序设计环境。,目前,国内流行的UNIX操作系统:SCO UNIXAT&T UNIX SVR 4X

2、 惠普计算机上的HP-UX IBM小型机上的AIX 苹果Mac上的AUX 免费的UNIX版本,如Linux、Minix和FreeBSD,4,二、UNIX系统特点,其主要特点是: 该系统用高级语言编写,使之易读、易懂、易修改、易移植到别的计算机上。 它有一个简单的用户界面-shell 它使用了在维护上容易的、实现上是高效的树形结构的文件系统。 文件、设备统一处理 内核和核外程序的有机结合 丰富的核外系统程序,5,三、UNIX系统结构,UNIX系统由硬件、UNIX系统核心、UNIX系统实用程序(utility program)和用户程序组成。,图9-2 UNIX操作系统的基本结构,6,UNIX系统

3、核心结构,1. 进程控制子系统进程同步、进程间通信、进程调度和存储管理 2.文件子系统文件存储空间管理、文件操作及存取控制、高速缓冲机制,图9-3 UNIX系统核心,7,2 UNIX系统调用,一、trap处理程序trap处理程序是UNIX系统的自陷处理程序,负责系统调用的处理。在处理系统调用时,首先把要求的参数传送到指定的存储区(user结构中),然后根据系统调用号查系统调用入口表,找到相应处理程序的入口地址,并启动执行,处理程序执行完成后,返回trap程序,trap程序返回中断自陷总控程序。,8,二、系统调用入口表系统调用入口表是系统调用处理程序入口地址表,该表的第一个表目对应0号系统调用,

4、第二个表目对应1号系统调用,如此类推。在老版本的UNIX系统中只有64个系统调用,在现代流行的UNIX系统版本中,一般有128个系统调用。UNIX系统的系统调用入口表的定义如下:struct sysent int count; /* 参数的个数 */int (*call)(); /* 执行程序入口地址 */ sysent64;,9,三、系统调用实现,图9-4 UNIX系统调用处理过程,10,四、系统调用分类,1、有关进程管理的系统调用fork 创建一个进程 sleep() 进程睡眠exec 执行一个可执行的文件wait 等待子进程终止 wakeup() 进程唤醒exit 进程终止(自杀),2、

5、与文件有关的系统调用 open 打开一个文件 close 关闭文件 read 读文件 write 写文件 creat 创建文件 lseek 修改文件的读写指针 link 文件连接 unlink 撤除文件连接(删除文件),11,9.3.1 UNIX系统的进程的图象(image) (一)进程图象的组成1、进程控制块PCB 基本进程控制块 proc结构:存放进程的最基本的控制和管理信息,不论该进程是否处于运行状态,系统都要访问的信息,必须常驻内存; 扩充进程控制块 user结构:存放进程的管理和控制信息,这些信息只有当进程处于运行状态时,系统才访问,不一定常驻内存。,3 进 程 管 理,12,2、正

6、文段(共享正文段) 它是进程执行程序的一部分,可为多个进程共享执行,作为正文段的程序必须是可重入的。 3、数据段 包括:正文段程序的处理对象数据、进程执行程序(私有)及数据和ppda(进程数据区)。 4、用户栈,13,(二)UNIX系统进程数据结构 1、proc结构,在UNIX系统的/sys/proc.h文件中; 2、user结构 ,在UNIX系统的/sys/user.h文件中; 3、 text结构(用来管理正文段的数据结构)text结构在UNIX系统的/sys/text.h文件中,14,9.3.2 UNIX进程的状态及变迁,一、UNIX进程的两种运行态核心态:指进程正在执行UNIX核心程序;

7、用户态:指进程正在执行用户程序;,15,二、UNIX进程树,16,0#进程:系统初启时由系统初启程序建立,完成系统初启的相应工作后,创建1#进程;然后的工作有两项,其一是进程交换;其二是进程切换(进程调度)。 1#进程:为系统的每个联机终端创建一个终端进程,然后就做托管工作。 2、3、n、n+1进程:终端进程,执行程序是shell,该进程执行是接受和执行用户键入的shell命令,或shell命令程序。 用户创建的进程:用户的shell命令或shell程序所创建的进程;用户在其程序中创建的进程。,17,三、UNIX进程状态,(一)运行状态 运行状态表示进程正在处理机上运行。 其特征是: p_st

8、at 为SRUN p_flag 中号SLOAD位为1,表示该进程图象在内存(在目前的UNIX系统中表示该进程的U区在内存)。核心态下的内存管理机制的指针指向ppda,即该进程的USER结构。 核心态运行 用户态运行,18,(二)就绪状态 在内存中就绪:指进程处于就绪状态,且进程U区在内存; 就绪且换出:指进程处于运行状态,且进程U区 不在内存。 p_stat为SRUN; p_flag的SLOAD为1,表示在内存中就绪;为0,表示就绪且换出; 核心态下的内存管理机制的指针不指向ppda。,19,(三)睡眠状态 睡眠状态是进程等待某事件发生而被迫暂时让出处理机 时所取的状态。 p_stat为SSL

9、EEP 高优先级睡眠状态;SWAIT 低优先级睡眠状态; p_flag中的SLOAD为1,表示该进程图象在内存,否则不在内存。 在UNIX系统中,当进程进入睡眠状态时,系统会根据该进程等待事 件的轻重缓急的程度赋予不同的优先数,该进程在被唤醒后,就以 系统赋予的优先数参与处理机的竞争。若系统赋予的优先数是小于0 (负数),进程进入高优先级睡眠状态,否则,进程进入低优先级 睡眠状态。 进程的优先数:p_pri(-127127),20,进程进入高优先级睡眠的原因: (1)0进程(100优先数); (2)因资源请求得不到满足的进程,磁盘(80),打印机 (20),; (3)等待块设备I/O完成的进程

10、,(50)。 进程进入低优先级睡眠的原因: (1)因等待字符设备I/O完成的进程,(020的优先数); (2) 所有处于用户态运行的进程,优先数一般情况下为大于100。 这样做的目的是为什么? 为使系统资源得到充分的利用,换句话说,是为了提高系统资源的使用效率。,21,(四)创建状态 父进程创建子进程时所取的状态,目的是保证子进程能完全复制父进程的图象。 在UNIX系统中,父进程创建一个子进程时,子进程要复制父进程的全部的进程图象(除proc结构外),当有内存空间时,能很快完成复制工作,但若无内存空间时,就要在交换区中建立子进程图象的复本,这时父进程将自己置为创建状态,以保证自己的图象不被调出

11、内存。,22,(五)僵死状态 僵死状态是子进程等待父进程作善后处理时所处的状态。 特征: 进程转换成僵死状态后,就不能再转换成其它任何状态; 进程已释放它占用的所有资源(除proc结构外)。p_stat 为SZOMB(zombi,zombie 还魂尸,僵尸)。,23,(六)进程状态变迁,24,fork-建立一个子进程,其主要任务是建立进程映象。swtch-其主要功能是选择一个处于SRUN可运行状态、映象在内存、并且优先级最高的进程,准备将处理机占用权交给它。exit-一个进程在执行结束时可调用exit使自己终止,同时通知父进程。wakeup-其功能是扫描整个proc表,把同一等待原因上的所有进

12、程唤醒, 使它们变为SRUN可运行状态。sleep-它可使当前执行的进程放弃处理机,变成等待睡眠状态。stop-调用stop使处于执行状态的进程进入暂停状态。setrun-其主要功能是激活处于SSTOP暂停状态的进程置为SRUN可运行状态。,25,9.3.3 进程创建,进程控制的操作有进程创建fork()、进程睡眠sleep()、进程唤醒wakeup()、 进程终止exit()和等待进程终止wait()。 进程创建fork() 调用形式:pid=fork(); 功能:创建一个子进程,被创建的子进程是父进程进程图象 的一个副本(除proc结构外),在UNIX系统中,除了0进程 外,其它进程都是调

13、用进程创建系统调用创建的。 返回:1 创建失败0 从子进程返回 0 从父进程返回,且返回值为子进程号,26,执行这个程序有两种可能的结果: 从子进程返回: 打印: 这是子进程的执行程序。这是父、子进程的共有执行程序 从父进程返回: 打印: 这是父进程执行程序。这是父、子进程的共有执行程序,27,9.3.4 进程的终止与等待,(一)进程自我终止 例子:假定copy是一个将源文件复制到目标文件的可执行程序,且该执行文件在当前目录中。,28,9.3.4 进程的终止与等待,UNIX系统中进程的自我终止就是指进程撤消操作,格式为: exit(status); 其中:status 是终止进程向其父进程传递

14、的参数。,29,(二)等待进程终止 一个进程创建了子进程后,在完成它的工作后,就等待 子进程的终止,这是一对同步操作。 格式: pid = wait(stat_addr); 其中:stat_addr:是一个地址指针,它将含有子进程的退出状态码;pid:僵死子进程号; wait和exit是UNIX系统向用户程序提供的进程实施同步的 主要手段。,30,31,9.3.5 进程睡眠与唤醒,进程因等待某事件发生 (或申请资源得不到满足、或等待I/O完成),进程由运行状态转换成睡眠状态,这个工作由进程睡眠操作sleep()完成,当等待的事件发生后,要把等待在该事件上的进程唤醒,即将进程的状态置为就绪状态。

15、,32,(一)进程睡眠sleep(pri,chan); 其中: pri:系统将给睡眠进程设置的优先数,当该进程被唤醒后,进程就以这个优先数去参与处理机的竞争;chan:进程睡眠的原因。,33,(二)进程唤醒在UNIX系统中进程唤醒操作将唤醒所有等待在相应事件上的所有进程,其格式如下: wakeup(chan); chan:与sleep中的相同,34,9.3.6 进程调度,我们从调度算法、调度时机、调度程序三个方面来分析UNIX系统的进程调度。 一、调度算法UNIX系统采用优先数调度算法,每个进程有一个进程优先数,p_pri是proc结构中的一个变量,其取值范围是127127,其值越小,进程的优

16、先级越高(即,调度程序总是从就绪状态的进程中选择一个优先数最小的进程占用CPU)。,优先数的确定: 1.系统设置 在进程进入睡眠状态时,在SLEEP()中设置将要进入睡眠状态进程的优先数,当该进程被唤醒后,就以系统给它设置的优先数去参与处理机的竟争。,2.优先数的计算计算公式: p_pri = p_cpu/16+p_nice+PUSER 其中:p_cpu 进程占用CPU的程度p_nice 用户通过系统调用nice(priority)设置的进程优先数。PUSER 常数,其值为100,36,tu :,进程创建后占用cpu时间的累计值,tt,:进程生成后所经历的时间,tnu,:进程创建后没有占用cp

17、u的时间,缺点:大量的统计和浮点运算,37,UINX系统中对p_cpu的处理:每个时钟中断:p_cpu+;每秒钟(时钟中断):if(p_cpu-SCHMAG 0 ) p_cpu = 0;其中:SCHMAG 调度魔数10在计算p_pri的公式中,PUSER是个常数,由于用户不可能频繁地设置进程的优先数,所以p_nice实际上也是个常数,那么决定p_pri的实际上就是p_cpu。根据UNIX系统与调度算法可得出如下的一个负反馈的过程,从这个过程中可看出什么?,38,这种负反馈的效果使得系统中在用户态下运行的进程能均衡地得到处理机,达到UNIX系统的设计目标。(UNIX系统什么设计目标?),39,(

18、3)计算优先数的时机 A.在时钟中断处理程序中,每秒末计算满足下面条件进程的优先数:p_pri PUSER B.现运行进程在自陷处理程序trap( )末尾重新计算本进程的优先数. 目的:调用nice() 设置的本进程的优先数p_nice的改变反映到p_pri中去; C.现运行进程在执行时钟中断处理程序时,若发现中断前为用户态,则每隔1秒钟重新计算本进程的优先数。 因为现运行进程已经占用了一些CPU的时间,要反映到p_pri中去。,40,这三种重新计算(调整)进程优先数都没有修改由系统设置的进程优先数,从而保证了处于核心态的进程能尽快地得到CPU,使得系统资源(设备)能得到充分地利用,提高了系统

19、资源的使用效率,而计算进程的优先数又使得系统中所有处于用户态的进程能较均衡地占用CPU,保证了各用户终端的响应时间,实现了分时操作系统的特性。,41,二、调度时机(UNIX系统中): 1)进程自动放弃处理机 在进程进入高低优先级睡眠状态时(在sleep()程序中); 在进程进入暂停状态时(在stop()程序中); 进程进入僵死状态时(在exit()程序中); 2)强迫调度 在中断自陷总控程序中,当先前态是用户态,且runrun标志大于0,则进行强迫调度,强行剥夺现运行进程的处理机,转进程调度程序。,42,runrun 标志大于0是说明系统中处于就绪状态的进程的优先级高于现运行进程的优先级,这时

20、要进行强迫调度,出现这种情况有两种可能:高低优先级睡眠进程被唤醒后其优先级高于现运行进程;当一个进程占用一段时间的CPU后,它的优先级要降低,造成现运行进程的优先级低于系统中的其它就绪进程(时间片到是其中的一种情况)。,43,三、UNIX系统调度程序swtch,44,4 存 储 管 理,4.1 概述UNIX系统的早期版本采用分页存储管理,进程的存储映象可以在内存和交换区之间传递,称为对换;UNIX 第6、7版采用对换。 在目前的一些UNIX系统中,采用请求分页存储管理,也就是采用虚拟存储技术,称为请求调页。UNIX SYSTEM 采用请求调页(请求分页)。以后的UNIX系统的各种版本均采用了请

21、求调页技术。,45,4.2 对换空间的管理,1.系统盘的结构:,2.对换存储管理的数据结构 系统设置了两个相同的结构:coremap 内存空闲区表swapmap 对换区空闲区表 空闲区的分配采用最佳适应法。 程序是:malloc(map,size) 空闲区回收程序:mfree(map,size,aa)map:内存(或对换区);size:大小 ; aa:释放区首址,46,3.对换进程就是0号进程,它一个永远处于核心态的进程。 其任务是将进程的映象在内存和对换区之间传递。,47,(一)进程换入当内存空闲时,0号进程将对换区中处于就绪状态的进程的映象调入内存,直到内存满,或者是对换区中已经没有处于就

22、绪状态的进程。调入就绪进程的依据是进程在对换区中驻留的时间,每次调人一个在对换区中驻留时间最在的进程映象进入内存。,(二)进程换出 当内存空间不足时,0号进程将内存中的某些进程换到对换区。 不能换出的进程是核心态的进程(UNIX核心)、处于创建状态的进程、上锁的进程,在内存中驻留时间不足两分钞钟的就绪进程。 换出的顺序是:处于睡眠状态的进程、暂停状态的进程。 若无以上这两类进程,就是处于就绪状态的进程。,48,4.进程对换的时机 发生下列情况之一就进行对换:(1)系统内存严重短缺,换页速度已跟不上内存要求。 (2)系统页表变为碎片,无法为新进程或扩展进程分配页表空间。 (3)进程已超过20 s

23、未活动,49,.3 请页系统,(一)进程区表 在UNIX system 中,一个进程可以有正文区、数据区、用户栈区和U区。其中U区只有处于运行状态的进程才有,其它状态的进程没有U区。每个区又分成若干个页。所以,每个区有一个页表。,(二)页和页表 将用户的程序空间分成大小相等的单位,称为页。并把内存空间也分成与之相等的块。页的大小为512字节。刚好与磁盘的物理块大小相等。 页表的格式如下:,50,块号:内存块号 年龄:该块在工作集中驻留的时间 修改:表示该页调入内存后修改过,置1,否则为0; 访问:该页调入内存后,被访问过; 有效:为1表示该页在内存,否则不在内存; 保护:该页的存储保护信息;

24、对换设备:指明对换设备; 磁盘块号:该页在对换设备上的磁盘物理块号。,51,(三)页面错(缺页中断) 在UNIX系统中产生页面错有两种情况: 1.进程企图访问虚存空间范围之外的页面,即段违例,在这种情况下,核心向违例的进程发送一个“段违例”的软中断。(这是一般操作系统中页面错的处理方法)。 2.进程企图访问一个有效位为0的页(该页不在内存),这时将产生一个有效位错的中断(类似于一般OS中的缺页中断)。核心处理该中断时,将所而的页面调入内存。,52,(四)偷页进程(页面淘汰) 当有进程需要调人一些页面时,又没有内存空间时,核心将按某种策略将系统中的一些页面调出内存,在一般的OS中称为页面淘汰,在

25、UNIX中称为偷页。 1.选择淘汰的页; 2.选中了淘汰页后,执行淘汰,若修改位为1,表示该页调入内存后,已经修改,淘汰时,要将要淘汰的页面写到相应的磁盘块。若修改位为0,表示该页面调入内存后没有修改过,只是把该页置为空。,53,5 设备管理,一、两种设备类型 1.块设备以字符块(一般情况下是512字节)为基本I/o单位的设备称为块设备,如磁盘、磁带、光盘等; 2.字符设备以字符为基本I/O单位的设备称为字符设备。,54,二、UNIX系统设备管理的特点 1.外部设备看作文件,由文件系统统一处理; 2.系统设备配置改变灵活、方便; 3.有效地使用了块设备缓冲技术,大大地提高了块设备存取操作的速度

26、。,55,在系统内部使用的设备名称为设备号。它由两个部分组成,主设备号和次设备号。 主设备号:设备的类型编号; 次设备号:同类设备的设备台号。,三、主设备号和次设备号,56,6 文 件 管 理,.目录项与节点,系统的目录项占用字节:前个字节为文件名,后二个字节是节点号。 节点(索引节点)的各项内容就是文件控制块的主要内容,它与目录项分别驻在磁盘中不同的空间。 若干目录项组成目录文件,若干节点(每个节点有个字节)的集合是节点区。如图所示。,57,图 9-5 目录项与节点,58,. 文件存储空间的管理,空白块成组链接法,图9-6 空白块成组链接法,59,只有在下述两种情况下,要求访盘操作:()分配

27、空白块时,当内存专用区中索引表只剩下一个空白块的情况。因该空白块中存放了下一组各块的块号,因此不能立刻将该块分配掉。这时必须将该块中存放的下组块号全部复制到内存专用块的索引表区之后,再分配该块。()在释放空白块时,如果内存专用区中索引表已存满规定的块数(如块),这时应先把索引表的内容存入被释放的空白块中,并清除索引表,将索引表块计数器置,然后将被释放的空白块的块号记入内存专用区的索引表中。,60,61,特别块(管理块)结构: 特别块是在磁盘格式化 时建立的,当一个文件 子系统安装到系统中时 ,系统将申请一个内存 缓冲区来存放特别块。,62,63,6.3 UNIX树型目录结构 一、UNIX系统目

28、录结构,整个系统有个根目录文件(DOS、WINDOWS系统中有一个根目录区),相当于一棵树的树根, 并有多级目录文件(与DOS概念相同,WINDOWS中叫做文件夹),相当于树枝。 还有许多文件(普通文件和特别文件),相当于树叶。,64,二、文件的安装和拆卸,UNIX系统采用树型目录结构,整个文件系统由根文件系统和若干个子文件系统所组成 。 根文件系统是基本文件系统,在系统生成时产生。 子文件系统是驻留其它文件存储介质上的文件系统,例如,一片软盘、一盘的逻辑分区、一卷磁带、一个磁鼓等,在UNIX环境下格式化后成为一个子文件系统,经过UNIX系统提供的安装命令装到系统中,与根文件系统和已经安装在系

29、统中的其它子文件系统一起形成一个完整的文件系统,当某个子系统不再使用时,用拆卸命令将该子文件系统拆卸下来。 综合以上所述,在UNIX环境下总只有一个完整的树型目录结构。所以,在UNIX系统环境下使用文件只要给出文件的路径名即可。,65,.4 打开文件,在系统内存区设置了一个含有个表目的活动节点表并由系统动态分配。每个打开文件都占有一个表目,用来存放相应的活动(内存)节点。一个活动节点的主体是从对应的盘节点中复制而来。系统还在内存设置了一个含有个表目的系统打开文件表,表目项包含:活动节点指针、文件操作方式、读写位移量。多个系统打开文件表表目可对应同一个活动节点。为每个进程在结构中设置了一个进程打

30、开文件表-, 它含有个表目,即允许一个进程最多打开个文件。表目内容为文件指针,它指向系统打开文件表中的相应表目。,66,. 文件保护,. 两种用户把使用系统的人分成两种用户。一种是特权用户,他们是用名注册进入系统的人,或者用命令从普通用户转为特权用户的人。由于根目录一般都有口令,因此,特权用户应当知道根目录的口令,而不准他人进入根目录或改变其身份。特权用户在屏幕上的提示符是“”。系统的另一种用户是普通用户,他们是用自己定义的名字注册进入系统的,是在“”目录下各自的目录中工作的人。普通用户和终端不是一一对应的,他们可以使用任意一台终端,即普通用户的数量不受终端数量的限制。,67,. 文件的存取权

31、及其改变所属权的命令系统对一个文件的操作规定有三种不同的存取权,系统又把使用者分成三个等级。于是每个文件就能出现九种存取权:,68, 系 统 初 启,.系统自举,图9-22 boot程序在内存中的位置,69,. 内核初始化()初始化期间系统采取的第一步是由汇编语言代码来实现的,这一工作与机器密切相关,它包括:建立运行栈;标识执行系统的类型;计算物理内存总量;使虚拟地址转换硬件成为可用;初始化存储管理硬件;初始化#进程的硬件环境;调用系统的程序初始入口。,70,()与机器相关的初始化。在汇编语言代码完成它的工作之后,它调用第一个用语言写的内核程序main( )。它的主要功能是清理内存空间,对某些

32、系统数据结构进行初始化处理,创建、进程。main( )程序立即调用startup( )程序去做与机器相关的初始化,其任务包括:信息缓冲区的初始化;为系统数据结构分配内存;系统的内存分配程序的初始化;设备的自动配置和初始化。在调用startup( )返回以后,还要对机器的几个专用硬件部分进行初始化。,71,()与机器无关的初始化。经过以上几步,就为系统结束初始化过程并启动某些进程做好了准备工作。上面提到的( )程序,在其返回后,( )的第一个动作就是建立进程的环境。 操作系统是否能正常运行在很大程度上依仗于和进程的工作,它们与其它进程不同,不是用系统调用,而是在本阶段由核心创建的。进程最终将实现

33、虚存系统的对换策略,表中的第一项分配给进程,并把该进程标记为可运行,然后把它安装为当前运行进程(执行状态)。,72,进程建立好以后,调用有关程序去初始化每个系统数据结构:如用( )子程序建立请页系统使用的各个参数;磁盘限量资源控制系统初始化(如快速缓存的初始化);通过调用( )进行时钟初始化( 按 实时时钟运行);通过调用( )来初始化网络存储管理系统等等。最后,系统为执行用户态程序做准备,将通过调用( )创建进程,然后系统把控制转向进程。为了使操作系统编制得比较紧凑,进程被设计成一个一般的用户进程,在用户态下运行。,73,. 各终端进程的初启,()执行程序。进程生成时,它基本上复制了进程的映

34、象,没有在用户态下的运行部分。现在既然设计成用户进程,所以借助系统调用改变其映象,增加在用户态下运行部分。转而执行程序,为每个终端创建一个子进程,使用户能获得系统对他的服务。进程执行t时,先从t中读出一个有效终端设备名,然后为其生成一个子进程。这一子进程打开了该终端设备,并形成了该进程的标准输入、标准输出和出错信息输出文件。,74,()执行t程序。子进程接着也要改换自己的映象转而执行tg。该程序主要功能是按照相应终端的特性设置终端设备表中有关部分。()执行t。最后读入注册名,并调用程序完成注册的一系列工作。程序负责用户登入系统,它由t调用,调用时带有用户的注册名。程序提示用户打入口令,如果由用

35、户提供的口令加密后与记录在总口令文件t中的值相同,就在记帐文件中写一个报到记录, 按照口令文件和t文件中所指定的内容初始化用户和组标识符(和)。,75,()最后终端进程又改换映象转而执行命令语言解释程序,开始用户和系统在键盘命令级上的对话过程。至此,完成了系统的初启过程。 一旦有某个用户输入一个命令后, 则引起键盘输入中断,激活对应的终端进程。终端进程再通过建立命令处理子进程来执行命令。这样,整个系统就活动起来了。,76,图9-23 UNIX初启后进程族,77, shell(外壳),. 命令的使用方式,命令行的一般格式是:command arg1,arg2,,arg其中,是命令名,其后是参数表

36、。有些命令是带参数的,有些命令是可不带参数的或参数是可选的。,78,用户也可将若干命令编辑成一个命令文件,称作过程。一个过程可被随时调用执行,当需要执行该过程时,使用命令行: $ sh comfile 或 csh comfile 其中,sh或csh是命令名,表示执行shell过程,comfile是shell过程名。语言的一大特点是, 它具有程序设计语言的一些基本特性, 例如, s支持、等控制流,还具有参数传递、变量和字符串替换等功能。,79,8.2 shell命令的处理UNIX采用生成子进程的方法执行shell命令。 在系统初启后,系统为每个用户终端建立一个shell进程,这个进程的任务就是接

37、收用户键入的shell命令并执行该命令。具体处理是,接收键入命令后,这个shell进程将根据命令码和参数,建立一个子进程。然后把自身挂起等待子进程执行结束。当子进程完成后,返回主进程。以后主进程又可接收下一条键入命令,再建立子进程。一般情况下,整个对话过程都是按照这种方式进行。在这种方式下,当前命令未执行结束之前,系统不能接收下一条命令。由于UNIX用建立子进程代替一般系统转入子程序的方法, 因此,UNIX很容易实现命令并行处理。 即主进程建立子进程后,不再挂起等待,而是立刻继续运行,接收下一条命令。子进程转入后台继续执行。,80,. 的高级功能,具有转入后台执行功能的命令称为后台命令。后台命

38、令的标记是在一般命令的末尾,加上符号“&”。在处理中,遇到“&”字符时,主进程不再挂起等待,并立刻输出提示符($或)准备接收下一条键入命令。实现了后台命令和并发运行。例如,我们希望在编译语言源程序.时,又希望编辑文件。可打入,cc pgm.c&$ ed letter,81,. 标准重新定向,()输出改向。在shell命令行中,加入filename时,可把输出标准设备改为filename所定义的文件。如fileename文件已经存在,则文件原有内容将被覆盖掉。例如,命令Is。这是一条把当前目录中各个文件的目录显示在标准输出设备上的shell命令。如使用定向符file 1时,Isfile 1 执行

39、后,将把各个文件的目录写入文件file 1中。如果用户希望把file 文件的内容添加到file 1文件的后面,则可使用定向字符,如Cat file 2file 1,82,()输入改向。在命令行中,加入filename时,把标准输入设备改向。例如,单独执行shell命令。 将从标准输入设备输入的文件的行数、字数、字符数进行统计,并将统计结果送出显示。加入file“定向字符后,将统计file文件的有关数据。例如: 将统计file 2文件中的行数、字数和字符数并从显示器上输出。,83,此外UNIX还允许同时改变标准I/O。例如,命令a.outfile 2 执行目标程序.out时,程序中要求从键盘输入

40、的信息将改从文件file输入。从显示器输出的信息,改为输出到file 2文件。,84,. 管道命令管道操作,可以把一个命令的标准输出作为另一条命令的标准输入,并依次类推,形成一个类似流水线加工过程。用“”字符表示管道符号。例如: 表示程序 的标准输出作为 程序的标准输入。它的效果相当于下面三条命令:,Prog 1T file Prog 2T file rm T flie,85,其中,是删除文件命令。 管道命令一般形式是: commandcommand 2command ,86, LINUX,Linux的进程 L进程是由正文段(text)、用户数据段(user segment)和系统数据段(sy

41、stem segment)组成的一个动态实体。 l 正文段中存放着进程要执行的指令代码,具有只读的属性, l 用户数据段是进程在运行过程中处理数据的集合,它们是进程直接进行操作的所有数据, 以及进程使用的进程堆栈。 l 系统数据段存放着进程的控制信息。其中包括进程控制块PCB。,87,进程控制块PCB是名字为task_struct的数据结构,它称为任务结构体 进程的任务结构体是进程存在的唯一标志。 Linux在内存空间中开辟了一个专门的区域存放所有进程的任务结构体。在操作系统的内核空间设置了一个task数组,该数组的每一个元素是一个指向任务结构体的指针,所以task数组又称为task向量。 S

42、truct task_struct *taskNR_TASKS= ,88,89,90,文件的类型 1 普通文件:普通文件一般又分为文本文件和二进制文件。 2 目录文件:两个特殊的目录项”代表目录本身,”表示父目录。 3.设备文件:分为字符设备文件和块设备文件,对应于字符设备和块设备。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器:/dev/fd0。 4.管道文件:主要用于在进程间传递数据。 5.链接文件:称符号链接文件,它提供了共享文件的一种方法。 三文件的访问权限 l 为了保证文件信息的安全,Linux设置了文件保护机制,其中之一就是给文件都设定了一定的访问权限。 l 当文件被访问时,系统首先检验访问者的权限,只有与文件的访问权限相符时才允许对文件进行访问。 l Linux中的每一个文件都归某一个特定的用户所有,而且一个用户一般总是与某个用户组相关。 l Linux对文件的访问设定了三级权限:文件所有者,与文件所有者同组的用户,其他用户。 l 对文件的访问主要是三种处理操作:读取、写入和执行。 l 三级访问权限和三种处理操作形成了9种情况:,91,92,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报