九章节UNIX操作系统.ppt

上传人:豆**** 文档编号:59576244 上传时间:2022-11-11 格式:PPT 页数:122 大小:666KB
返回 下载 相关 举报
九章节UNIX操作系统.ppt_第1页
第1页 / 共122页
九章节UNIX操作系统.ppt_第2页
第2页 / 共122页
点击查看更多>>
资源描述

《九章节UNIX操作系统.ppt》由会员分享,可在线阅读,更多相关《九章节UNIX操作系统.ppt(122页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、九章节UNIX操作系统 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 9.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上用汇编语言开发出上用汇编语言开发出

2、UNIX 1970年年 在在PDP-11系列机上系列机上(11/20,11/40,11/45)用汇编开发出用汇编开发出UNIX v.1。在此过程中,。在此过程中,机器的硬件逐渐复杂,机器的硬件逐渐复杂,UNIX所支持的特所支持的特 征也不断丰富,增加了文字处理程序。征也不断丰富,增加了文字处理程序。1975年年 发表发表UNIX v.6 并广泛扩散到大学和科研并广泛扩散到大学和科研 单位单位,为后期发展奠定了良好的基础为后期发展奠定了良好的基础1978年年 优化后发布优化后发布UNIX v.7-UNIX的第一个的第一个 商业版本商业版本-我国开始研究应用的最早版本我国开始研究应用的最早版本 1

3、981年年 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 有代表性的其它版本有代表性的其它版本1.加州大学伯克利分校的加州大学伯克利分校的BSD(Berkeley Software Distribution)版本版本,主要

4、用于工主要用于工 程设计和科学计算程设计和科学计算2.Microsoft和和SCO公司开发的公司开发的SCO XENIX SCO UNIX 和和 OpenServer等等,主要应用主要应用 在基于在基于Inter x86体系结构的系统上体系结构的系统上3.开放源代码的开放源代码的Linux,UNIX的体系结构加的体系结构加 MS Windows形式的图形用户界面形式的图形用户界面,主要主要 应用在基于应用在基于Inter x86体系结构的系统上体系结构的系统上9.1.3 UNIX系统特征系统特征1.可移植性强可移植性强 .UNIX操作系统大量代码为操作系统大量代码为C语言编写语言编写 .C语言

5、具有跨平台特性语言具有跨平台特性 2.多用户、多任务的分时系统多用户、多任务的分时系统 .人机间实时交互数据人机间实时交互数据 .多个用户可同时使用一台主机多个用户可同时使用一台主机 .每个用户可同时执行多个任务每个用户可同时执行多个任务3.软件复用软件复用 .每个程序模块完成单一的功能每个程序模块完成单一的功能 .程序模块可按需任意组合程序模块可按需任意组合 .较高的系统和应用开发效率较高的系统和应用开发效率4.与设备独立的输入与设备独立的输入/输出操作输出操作 .打印机、终端视为文件打印机、终端视为文件 .输入输入/输出操作与设备独立输出操作与设备独立5.界面方便高效界面方便高效 .内部内

6、部:系统调用丰富高效系统调用丰富高效 .外部外部:shell命令灵活方便可编程命令灵活方便可编程 .应用应用:GUI 清晰直观功能强大清晰直观功能强大6.安全机制完善安全机制完善 .口令、权限、加密等措施完善口令、权限、加密等措施完善 .抗病毒结构抗病毒结构 .误操作的局限和自动恢复功能误操作的局限和自动恢复功能7.多国语言支持多国语言支持 .支持全世界现有的几十种主要语言支持全世界现有的几十种主要语言8.网络和资源共享网络和资源共享 .内部内部:多进程结构易于资源共享多进程结构易于资源共享 .外部外部:支持多种网络协议支持多种网络协议9.系统工具和系统服务系统工具和系统服务 .100多个系统

7、工具(即命令),完成多个系统工具(即命令),完成 各种功能各种功能 .系统服务用于系统管理和维护系统服务用于系统管理和维护9.1.4 UNIX系统组成 计算机系统有四大资源-处理机、存储器、文件、设备一、UNIX系统核心的结构 库函数系统调用接口文件子系统进程控制 子系统进程间通信调度存储管理高速缓存字符设备 块设备设备驱动程序硬件控制硬件硬件核心级硬件级用户级核心级用户程序捕俘UNIX核核心心的的框框图图SHELL二、二、Unix系统的组成系统的组成UNIX可分为四个层次。最低层是硬件,它可分为四个层次。最低层是硬件,它是整个系统的基础;次低层是是整个系统的基础;次低层是OS核心;其核心;其

8、次是次是OS与用户的接口与用户的接口SHELL、编译程序等;、编译程序等;最高层是用户程序。最高层是用户程序。内核:内核:是Unix系统的核心部分,能与硬件直接交互,常驻内存。驻留(基本)模块驻留(基本)模块:完成输入/输出、文件、设备、内存和处理器时钟的管理,常驻内存。系统工具:通常称为shell。是Unix操作系统的一部分,是用户与Unix交互的一种接口。常驻磁盘,在用户登录时即调入内存。三、进程控制子系统进程控制子系统负责管理处理机、存储器。它的功能有:1、进程控制-应用程序利用系统调用fork创建一个新进程;利用系统调用exec执行一个满足条件的进程;利用系统调用exit结束一个程序的

9、执行。2、进程通信3、存储器管理4、进程调度-将满足运行条件的程序(进程)调入内存,安排一个时间片。四、文件子系统文件子系统负责文件、设备资源的管理。它的功能有:1、文件管理2、高速缓冲机制-设置多个缓冲区以匹配I/O的速度。3、设备驱动程序9.1.5 Uinx操作系统的启动流程 主机Unix内核initgettyLogin:gettygettyLogin:Login:装入OS内核硬件检查硬件检查安装安装rootfs形成形成0号进程号进程产生子进程产生子进程对换进程对换进程swap产生产生1号进程号进程init执行执行inittab初始化各端口初始化各端口gettygetty登录登录执行命令执

10、行命令退出退出boot父父子子9.1.6 用户分类和用户职责一、用户分类1、超级用户2、普通用户二、职责9.1.8 用户登录与退出超级用户:通过“root”登录 退出命令:1、shutdown or2、haltsys普通用户:通过自己的UID登录 退出命令:exit or Ctrl+d 9.2 文件管理UNIX的文件系统的功能很强,又很灵活。UNIX文件系统的概述1、特点:文件的组织是分树形结构-是倒树形结构。每个用户可以建立自己的文件系统。文件的物理结构为混合索引式文件结构-文件的物理结构可能包括多种索引文件结构形式(单级索引、两级索引和多级索引文件结构形式。这种物理结构查询速度快、节省存放

11、文件地址所需的空间。采用了成组链接法管理空闲盘块-是空闲表法和空闲链法的产物,提高了查找空闲盘块的速度,节省了存放盘块号的存储空间。引入了索引结点的概念-在UNIX系统中,把文件名和文件的说明分开,即分别作为目录文件和索引结点表中的一个表项,这样既可提高文件的检索速度,又能减轻通道的I/O压力。2、文件系统的特点由于文件名和文件属性(说明)分开存放,文件属性构成文件的索引结点,这使UNIX的目录项与一般文件系统的目录项不同,故UNIX文件系统的结构与一般的文件有所差异。应该是按文件的用途和类别存放。下面的图中,根目录中的bin是二进制系统文件的子目录;usr是用户文件的根目录;dev是特殊文件

12、的根目录。binusrdeviiiwangiiroot目录表 bin的目录表usr的目录表dev的目录表 3、文件系统的资源管理为了在系统中保存一份文件,就需花费资源,当文件处于“未打开”状态时,文件需占用三种资源:一个目录项-用以记录文件的名称和对应索引结点的编号;一个磁盘索引结点项-用以记录文件的属性和说明信息(在磁盘上);若干个盘块-用于保存文件本身。当文件处于“打开”状态时,须增加三种资源:一个磁盘索引结点项-用以记录文件的属性和说明信息(在磁盘上);若干个盘块-用于保存文件本身。当文件处于“打开”状态时,须增加三种资源:一个内存索引结点项(驻留内存);文件表中的一个登记项;用户文件扫

13、描符表中的一个登记项。由于对文件的读写管理,必须涉及上述资源,所以对文件的管理就包括:对索引点的管理对空闲盘块的管理对文件目录的管理对文件表和描述符表的管理对文件的使用。9.3 进程的描述 在UNIX系统中,采用段页式存储管理方式(段称为区-Region).一个进程实体由若干个区组成(程序区、数据区、栈区、共享存储区),每个区可分若干页。UNIX中为每个进程配置一个进程控制块(PCB)用于控制和管理进程。PCB由四部分组成。1、进程表项(核心数据)2、U区(扩充信息)3、进程区表(存放段的起地址始、指向系统区表中对应区表项的指针)4、系统区表项(存放各个段在物理存储器中的位置)9.2.1 进程

14、的数据结构(PCB)一、进程表项(Process Table Entry):包含如下的内容:1、进程标识符(PID)是唯一标识进程的某一整数;2、用户标识符(UID)是标识拥有该进程的用户;3、进程状态 表示该进程的当前状态;4、事件描述符 记录使进程进入睡眠状态的事件;5、进程和U区在内存或外存的地址,核心可利用这些信息做上、下文切换;6、软中断信号 记录其它进程发来的软中断信号;7、计时域 给出进程的执行时间和对资源的利用情况;8、进程的大小 核心根据进程的大小来为其分配存储空间;9、偏置值nice(加权系数)供计算该进程的优先数时用,用户可自定;10、PLink 指向就绪队列中下一个PC

15、B的指针;11、指向U区进程正文、数据及栈在内存区域的指针。二、U区(U Area)每个进程都有一个私用的U区,其中包含内容:1、进程表项指针 指向当前(正在执行)进程的进程表项;2、真正用户标识符u-ruid(real user ID)它是超级用户分配给普通用户的标识符,以后每次用户登录进入系统时,均必须输入此标识符;3、有效用户标识符u-euid(effective user ID)可用系统调用setuid改变为其它用户,以获得对该用户的文件访问权;4、用户文件描述符表 记录该进程已打开的所有文件;5、当前目录和当前根 给进程的文件系统环境 6、计时器 记录进程在核心态和用户态的运行时间;

16、7、内部I/O参数 给出要传输的数据量,源(或目标)数据的地址,文件的输入/输出偏移量;8、限制字段 指对进程的大小及其“写”的文件大小的限制。三、系统区表(System Region Table)系统V把一个进程的虚地址空间划分为若干个连接的逻辑区:正文区、数据区、栈区等。这些区是可被共享和保护的独立体。多个进程可共享一个区。例如:多个进程共享一个正文区,即几个进程将执行同一个程序;同样,多个进程也可共享一个数据区。为了对区进行管理,在核心中设置了一个系统区表,以记录区的有关信息:1、区的类型和大小;2、区的状态(一个区有:锁住、在请求、在装入过程中、有效-区已装入内存);3、区在物理存储器

17、中的位置;4、引用指针 共享该区的进程数;5、指向文件索引结点的指针四、本进程区表(Per Process Region Table)为了记录进程的每个区在进程中的虚地址,并通过它找到该区在物理存储器中的实地址,系统为每个进程配置了一张进程区表。表中每一项记录一个区的起始虚地址及指向系统区表中对应的区表项。这样,核心通过查找进程区表项和系统区表,便可将该区的逻辑地址转换为物理地址。这里使用两张表实现是便于区的共享。下图说明了其过程:A、B两个进程的进程区表和系统区表。在A进程区表中的正文区、数据区和栈区的指针,分别指向相应于a、b、c区的系统区表项。B进程区表中的正文区、数据区和栈区,分别指向

18、相应于a、d、e三个系统区表项,由于A 和B进程共享正文区,所以它们都指向同一个正文区a。正文数据栈正文数据栈ab cdeabcdeA进程区表B进程区表系统区表进程区表项、系统区表项和区的关系A、B共享正文区共享正文区 进程的数据结构:U区abcabc进程表本进程区表系统区表9.2.2 进程状态及其转换一、进程状态UNIX中,把进程执行状态分为两种(用户态执行、系统态执行),前者是进程正处于用户状态中执行,运行可被中断;后者是核心状态执行(系统调用中断后便进入核心状态)运行不能中断。为进程设置了九种状态:1、核心态执行2、用户态执行3、内存中就绪 4、被剥夺状态5、就绪/换出6、内存中睡眠7、

19、睡眠/换出8、创建状态-在父进程执行fork系统调用创建子进程期间,新被创建的子进程便处于“僵死”状态;9、僵死状态-在执行exit系统调用后的状态。421385967进程状态的转换用户态执行返回到用户态被剥夺内存中就绪内存足创建fork内存不足就绪/换出换入换出唤醒睡眠/换出内存中睡眠睡眠唤醒换出核心态执行调度剥夺返回系统调用中断中断中断返回僵死二、进程映像在UNIX系统中,进程是进程映像(Process Image)的执行过程。进程映像也就是正在执行的进程实体。它由三部分组成:用户级上、下文,寄存器上、下文和系统级上、下文。一、用户级上、下文:主要是用户程序,它在系统中分为正文区和数据区。

20、正文区是只读的,主要是一些程序。在进程执行时,可利用用户栈区保存中间结果。二、寄存器上、下文由CPU中的如下寄存器构成:1、程序寄存器 存放CPU要执行的下条指令的虚地址;2、处理机状态寄存器(PSR)其中包括运行方式(用户态、系统态)、处理机当前的运行级等相关信息;3、栈指针4、通用寄存器三、系统级上、下文其中包括OS为进程管理该进程所用的信息:1、静态部分-在进程的整个生命期中,系统级上、下文大小保持不变,它由三部分组成:进程表项 每个进程占一个表项(记录进程的状态等相关信息)U区进程区表项、系统区表项、页表,用于实现进程的虚地址到物理地址的映射。2、动态部分-是可变的,它包括:核心栈;若

21、干层寄存器上、下文。用户级上、下文进程正文数据栈共享数据系统级上、下文静态部分进程表项U区本进程区表核心栈第3层第2层的保护的寄存器上、下文核心栈第3层第2层的保护的寄存器上、下文核心栈第3层第2层的保护的寄存器上、下文核心上、下文0层上、下文静态部分上、下文动态部分进程上、下文的组成9.2.3 进程的控制在UNIX系统中,只设置了进程,它是一个独立拥有资源、独立调度的基本单位。UNIX系统中的系统调用有:1、fork-创建一个新进程2、exec-改变进程的原有代码3、exit-实现进程的自我终止4、wait-将调用进程挂起,等待子进程终止5、getpid-获取进程标识符6、nice-改变进程

22、的优先级。一、fork系统调用:在UNIX系统中,只有0进程是在系统引导时被创建的,在系统初启时由0进程创建1进程,以后0进程变为对换进程,1进程成为系统中的始祖进程。UNIX利用fork为每个终端创建一子进程为用户服务(如:等待用户登录、执行shell命令解释程序等)。每个终端又可用fork来创建其子进程,从而形成一棵进程树。系统中除进程外的所有进程都是用fork创建的。fork的系统调用格式:int fork();fork系统调用设有参数,如果执行成功,则创建一个子进程。核心为fork完成如下操作:1、为新进程分配一进程表项和进程标识符;2、检查同时运行的进程数目;3、拷贝进程表项中的数据

23、;4、子进程继承父进程的所有文件;5、为子进程创建进程上、下文;6、子进程执行。二、exec系统调用:fork系统调用只是将父进程的用户级上、下文拷贝到新进程中,而exec系统调用将可执行的二进制文件覆盖在新进程的用户级上、下文的存储空间。exec系统完成的操作:1、对可执行文件进行检查;2、回收内存空间;3、分配存储空间;4、拷贝参数。三、exit系统调用:Unix系统;利用exit来实现进程的自我终止。核心需为exit完成:1、关闭软中断;2、回收资源;3、写相关信息;4、置进程为“僵死”状态。四、wait系统调用:用于进程挂起。核心为wait完成的操作:1、首先查找调用进程是否有子进程,

24、若无,则返回出错信息;2、若找到一个“僵死状态”的子进程,则将子进程的执行时间加到父进程的执行时间上,并释放子进程表项;3、若未找到处于“僵死状态”的子进程,则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒。9.2.4 进程调度UNIX系统是分时系统,系统未设置作业调度。对进程的调度采用多级反馈队列轮转调度方式。多级反馈队列轮转调度方式。1、优先级分类:核心优先级;、优先级分类:核心优先级;2、优先级的计算:系统、优先级的计算:系统V中的用户优先级是可变的。它随占中的用户优先级是可变的。它随占用用CPU的时间越长而降低。核心每隔的时间越长而降低。核心每隔1秒钟便按如下公

25、式计算秒钟便按如下公式计算各进程的用户优先级:各进程的用户优先级:优先数优先数=+基本用户优先数基本用户优先数最近使用CPU的时间 2 9.3 进程切换9.3.1 进程的同步与通信9.3.2 管道UNIX系统的“管道”是OS的首创。这也是UNIX系统的一大特色。所谓“管道”,是指能够连接一个写进程和一个读进程的,并允许它们以生产者-消费者方式进行通信的一个共享文件(pipe文件)。由写进程从管道的入端将数据写入管道,而读进程则从管道的出端读出数据。一、管道类型:1、无名管道(Unnamed Pipes)-是一个临时文件,是利用系统调用pipe()建立的无名文件。2、有名管道(Named Pip

26、es)-可在文件系统中长期存放、具有路径名的文件。二、pipe文件的建立进程利用pipe系统调用来建立一无名管道。其语法格式:int pipe(filedes);int filedes2;核心创建一条管道须完成的工作:1、分配磁盘和内存索引结点;2、为读进程分配文件表项;3、为写进程分配文件表项;4、分配用户文件描述符。fpfpfoffsetfinodeFWRITEFPIPEfoffsetfinodeFREADFPIPE第i个索引结点Pipe文件用户文件描述符文件表内存索引结点外存pipe系统调用工作时所涉及的数据结构三、对无名管道的读写1、对pipe文件大小的限制:为提高运行效率,pipe文

27、件只使用索引结点中的直接地址项iaddr(0)iaddr(9)。核心将索引结点中的直接地址项作为一个循环队列来管理,为它设置一个读指针和一个写指针,按先进先出顺序读、写。2、进程互斥:依靠上锁/解锁来控制读、写进程访问pipe 文件。3、进程写管道4、进程读管道9.3.3 消息消息(message)是一个格式化的可变长的信息单元。消息机制允许一个进程给其它任意的进程发送一个消息。当一进程收到多个消息时,可将它们排成一个消息队列。UNIX系统中,消息机制向用户提供了四个系统调用,分别用于建立、发送和接收消息。一、消息机制的数据结构:系统将消息分为首部、数据区。1、消息首部记录消息的类型、大小、这

28、指向消息数据区的指针、消息队列的链接指针等。2、消息队列头表-在每一个消息队列的消息头中,包含了指向消息队列第一个消息的指针和指向最后的一个消息的指针、队列中消息的数目、队列中消息数据的总字节数、队列所允许的消息数据的最大字节总数、最近一次执行发送操作的进程标识符和时间、最近一次执行接收操作的进程标识符和时间。二、消息队列的建立和消息队列描述符的获取每个消息队列有一个由用户指定的关键字(key)。消息队列还有一个消息队列描述符。进程可利用系统调用msgget来建立一个消息队列或获取一消息队列描述符。其格式:int msgget(key,msgflg);key_t key;int msgflg;

29、其中,key是用户指定的消息队列名;msgflg是用户设置的标志和访问方式。如ipc_CREAT表示系统若无以key命名的消息队列,则建立消息队列;若该队列已存在,则返回该消息队列的描述符msgid。队列 i队列 n消息首部msgh 0消息首部msgh 2消息首部msgh 3消息缓冲区消息缓冲区消息缓冲区消息首部消息缓冲区032m消息队列头表消息机制中的数据结构消息机制中的数据结构 三、消息的发送进程用msgsnd()系统调用向指定的消息队列发送一个消息,并将该消息链接到该消息队列的尾部。其格式:int msgsnd(msgid,msgp,msgsz,msgflg);int msgid;str

30、uct msgbuf*msgp;int msgsz,msgflg;其中:msgid是由msgget返回的消息队列描述符;msgp是指向用户消息缓冲区的指针。缓冲区包括消息类型、消息正文,即:long mtype;/*消息类型*/char mtext ;/*消息的文本 */msgsz是mtext长度的字节数;msgflg是规定了当无内存空间存储消息时,进程等待还是立即返回。对于msgsnd系统调用,核心须完成的工作:1、对消息队列的描述符、许可权、消息长度进行检查,若合格才继续执行,否则返回。2、分配消息数据区,将用户消息缓冲区中的消息正文拷贝到消息数据区。3、分配消息首部,并将它链入消息队列的

31、尾部。在消息首部应填写消息类型、大小、指向消息数据区的指针等数据。4、修改消息队列头中的数据。如队列中的消息数、字节总数,最后唤醒等待消息的进程。四、消息的接收进程利用msgrcv()系统调用,从指定的消息队列中接收指定类型的消息,其语法格式:int msgrcv(msgid,msgp,msgsz,msgtpy,msgflg);int msgid,msgsz,msgflg;struct msgbuf*msgp;long msgtpy msgtpy是规定选读的消息类型。对于msgrcv系统调用,核心所完成的工作:1、对消息队列的描述符、许可权、消息长度进行检查,若合格才继续执行,否则返回。2、根

32、据msgtpy的不同进行处理:msgtpy=0,核心寻找消息队列中的第一个消息,并将它返回给调用者;msgtpy为正整数,核心返回给定消息类型的第一个消息;msgtpy为负整数,核心应在其类型值小于或等于msgtpy绝对值的所有消息中,选出其类型值最低的一个消息返回。3、当所返回消息的大小等于或小于用户的请求时,核心便将消息正文拷贝到用户区,并从消息队列中删除此消息,然后唤醒睡眠的发送进程。如果消息长度大于用户要求的,则做出错返回。用户可不规定消息的大小,而将消息一律拷贝到用户区。五、消息队列的操纵用户在建立消息队列后,可利用msgctl系统调用来读取它的状态信息并进行修改,如查询消息队列描述

33、符、修改消息队列的许可权,或取消该队列。Msgctl语法格式:int msgctl(msgid,cmd,buf);int msgid,cmd;struct msgid_ds *buf;其中:buf 是用户缓冲区地址,供用户存放控制参数和查询结果;cmd是规定的命令。(命令有:查询、设置和改变消息属性、消除消息队列的标识符等命令)9.3.4 共享存储区共享存储区(Shared Memory)是UNIX系统中通信速度最高的一种通信机制。该机制可使若干进程共享存主存中的某一区域,可使该区域出现在多个进程的虚地址空间中。一个进程的虚地址空间中又可连接多个共享存储区,每个共享存储区有自己的名字。如图:进

34、程A将建立的共享存储区接到自己的AA区域,进程B将建立的共享存储区接到自己的BB区域。正文数据栈共享共享存储区存储区正文数据栈AABB进程A的虚空间内存空间进程B的虚空间利用共享存储区进行通信一、共享存储区的建立当进程要利用共享存储区进行通信时,应先利用系统调用shmget建立一个共享存储区。如果共享存储区已由其它进程建立,则返回其描述符shmid。Shmget的语法格式:int shmget(key,size,shmflg);key_t key;int size,shmflg;Key是共享存储区的名字,size是其大小,shmflg是用户设置的标志,如IPC_CREAT。IPC_CREAT用

35、来表示若系统中尚无指名的共享存储区,则由核心建立一个共享存储区,若系统中已有共享存储区,则忽略IPC_CREAT。核心所完成的工作:1、检查共享存储区表,该表是系统范围的数据结构,每个共享存储区在该表中占有一表项。其中:包括共享存储区的名字(key)、共享存储区大小、共享存储区的页表始地址、指向系统区表项的指针等。若在该表中已查到指定的key表项,表明该共享存储区已建立,此时便返回该表项的描述符shmid。2、若在该表中未查到指定的key表项,而flag标志又为IPC_CREAT,参数size又在系统限制值内,则分配一系统空闲区作为共享存储区,分配相应的内存块,再将这些块号填入页表中。3、在共

36、享存储区和系统区表中,为新建立的共享存储区分配一空表项,并在共享存储区表中填上存储区关键字及大小、共享存储区页表的始地址、指向系统区表项的指针,最后返回共享存储区的描述符 shmid。二、共享存储区的附接与断开建立共享存储区后,还需用系统调用shmat()将共享存储区附接到进程的虚地址空间上。这样,共享存储区便成为进程虚地址空间的一部分。进程可对其进行读写操作。该系统调用的语法格式:char*shmat(shmid,shmaddr,shmflg);int shmid,shmflg;char*shmaddr;其中:shmaddr是用户给的将共享存储区附接到进程的虚地址空间,shmflg是共享存储

37、区的读写标志。当进程不需要共享存储区时,应利用系统调用shmdt(),把共享存储区与进程断开,其语法格式:int shmdt(shmaddr);char shmaddr;其中:shmaddr是要断开连接的虚地址。三、共享存储区的操纵可用shmct()系统调用对共享存储区的状态消息进行读取和修改,可以断开进程与共享存储区的连接。当所有进程都断开了与共享存储区的连接,便可取消该共享存储区。Shmct1系统调用语法格式:int shmct1(shmid,cmd,buf);int shmid,cmd;struct shmid_ds,*buf;Buf是用户缓冲区地址,cmd是操作命令。(命令有:用于查询

38、共享存储区的长度、当前建立的进程数、共享存储区的创建者标识符,设置或修改共享存储区的属性(许可权等),对共享存储区的加锁/解锁和删除共享存储区标识符等命令)信号量在UNIX系统V中,规定每个信号量有一个可用来表示某资源数目的信号量值和一个操作值。也就是说:信号量可以用来控制系统的操作。(参阅P414)9.4 存储器管理在UNIX系统中,内存空间分配和回收以页为单位(512B4KB/页)一个进程只需将其一部分(段或页)调入内存便可运行。涉及到请求调页的数据结构有:一、页表(所包含的内容有:页框号、年龄、访问位、修改位、有效位、写时拷贝、保护位)二、磁盘块描述表(Disk Block Descri

39、ptor)三、页框数据表(Pape Frame Data Table)四、对换使用表(SwapUse Table)页框号年龄写时拷贝修改位 访问位有效位保护对换设备号设备块号存储器类型页状态内存引用计数逻辑设备块#号指向下一个页框数据表指针页表项盘块说明页框数据表项UNIX系统V存储器管理中的数据结构9.4.1 换页进程UNIX系统的核心中,专门设置了一个换页进程(Pape stealer),其主要任务:1、每隔一定时间由换页进程对内存中的所有有效页的年龄加1;2、当有效页的年龄达到规定值后便把它换出。如果有时间着重讲”重定向输入/输出”和”管道”命令.9.5 文件管理UNIX的文件系统的功能

40、很强,又很灵活。9.5.1 UNIX文件系统的概述1、特点:文件的组织是分树形结构-是倒树形结构。每个用户可以建立自己的文件系统。文件的物理结构为混合索引式文件结构-文件的物理结构可能包括多种索引文件结构形式(单级索引、两级索引和多级索引文件结构形式。这种物理结构查询速度快、节省存放文件地址所需的空间。采用了成组链接法管理空闲盘块-是空闲表法和空闲链法的产物,提高了查找空闲盘块的速度,节省了存放盘块号的存储空间。引入了索引结点的概念-在UNIX系统中,把文件名和文件的说明分开,即分别作为目录文件和索引结点表中的一个表项,这样既可提高文件的检索速度,又能减轻通道的I/O压力。2、文件系统的特点由

41、于文件名和文件属性(说明)分开存放,文件属性构成文件的索引结点,这使UNIX的目录项与一般文件系统的目录项不 同,故UNIX文件系统的结构与一般的文件有所差异。应该是按文件的用途和类别存放。下面的图中,根目录中的bin是二进制系统文件的子目录;usr是用户文件的根目录;dev是特殊文件的根目录。binusrdeviiiwangiiroot目录表 bin的目录表usr的目录表dev的目录表 3、文件系统的资源管理为了在系统中保存一份文件,就需花费资源,当文件处于“未打开”状态时,文件需占用三种资源:一个目录项-用以记录文件的名称和对应索引结点的编号;一个磁盘索引结点项-用以记录文件的属性和说明信

42、息(在磁盘上);若干个盘块-用于保存文件本身。当文件处于“打开”状态时,须增加三种资源:一个内存索引结点项(驻留内存);文件表中的一个登记项;用户文件扫描符表中的一个登记项。由于对文件的读写管理,必须涉及上述资源,所以对文件的管理就包括:对索引点的管理对空闲盘块的管理对文件目录的管理对文件表和描述符表的管理对文件的使用。(教材后面的内容请同学自己看教材后面的内容请同学自己看)UNIX使用入门使用入门.预备知识预备知识分时操作系统:分时操作系统:支持多个用户同时使用一台计算机。组成:组成:一台主机和多台终端构成。分时操作系统将CPU时间划分为多个时间片,每个用户一次只能运行一个时间片,时间片一到

43、就让出处理机供其他用户程序使用。由于CPU速度很快,而时间片相对较短(为毫级),所以,每个用户在自己的终端上操作时感觉不到其他用户的存在,就象他在独占整个计算机系统一样。Unix 是多用户/多任务分时系统网络操作系统:网络操作系统:多台独立工作的计算机用通信线路连接起来,构成一个能共享资源的更大的信息系统。组成:组成:多台独立的计算机。Client-Server结构结构一一.UNIX的外部运行环境的外部运行环境UNIX 运行示意图运行示意图主 机终端1 终端2 终端n网 络 TCP/IP网络终端服务器终 端 主机m 主机nRS2322RS2322RS2322RS2322RS2322RS2322

44、二二.用户登录和退出用户登录和退出1.1.登录登录:用户登录时,SHELL调入内存;UNIX启动完成,在终端显示login:输入用户名后,启动login程序来完成登录Login检查下一步要执行的程序名(即shell)出现系统提示符$.登录的三个基本条件登录的三个基本条件:主机启动完毕主机启动完毕 通讯端口打开通讯端口打开 终端开电终端开电登录的过程UNIX是多用户操作系统。系统识别用户身份并允许用户使用的过程称为登录过程当UNIX系统完成登录准备时给出login:提示。Login:用户名 password:2.修改口令修改口令$passwdChanging password for stude

45、nt2Old password:New password:Re-enter new password:说明说明:根据系统的安全级别用户口令一根据系统的安全级别用户口令一直直 有效或定期修改有效或定期修改 UNIX UNIX系统不会回显用户输入的口令系统不会回显用户输入的口令 即从屏幕上看不到任何字符。即从屏幕上看不到任何字符。3.退出系统退出系统$exitRed Hat Linux Release 8.0login:_可用可用logout退出退出可用可用Ctrl-d退出退出表明表明:1.当前用户已成功退出当前用户已成功退出,善善 后工作已完成后工作已完成 2.本用户或其他用户可重本用户或其他用

46、户可重 新登录进入系统新登录进入系统4.用户基本信息文件用户基本信息文件 /etc/passwdroot:x:0:3:super user:/:/sbin/shbin:x:2:2:Admin:/usr/bin:admin:x:101:1:admin:/home/admin:/usr/bin/cshoracle:x:102:101:dbms:/data/oracle:/usr/bin/kshtest:x:103:1:/home/test:/usr/bin/cshteacher:x:104:200:/home/teacher:/usr/bin/vshstudent1:x:105:300:/home

47、/student1:/usr/bin/kshstudent2:x:105:300:/home/student2:/usr/bin/kshstudent3:x:107:300:/home/student3:/usr/bin/kshstudent4:x:108:300:/home/student4:/usr/bin/kshUNIX内核INITgettygettygettyLogin:Login:Login:三三.UNIX 的启动过程的启动过程UNIX内核INITLoginLoginLoginLoginLogin:david password:Login:Login:Login:UNIX内核INIT

48、shellshellgettygettyLogin:david password:$Login:Login:Login:Login:UNIX 的启动过程流程图的启动过程流程图装入装入OS内核内核硬件检查硬件检查安装安装rootfs形成形成0号进程号进程产生子进程产生子进程对换进程对换进程swap产生产生1号进程号进程init执行执行inittab初始化各端口初始化各端口gettygetty登录登录执行命令执行命令退出退出boot父父子子四四.基本命令的使用基本命令的使用1.简单命令简单命令 基本规则基本规则:在命令提示符后发出命令;在命令提示符后发出命令;命令行输入完并开始执行的标志是回车换命

49、令行输入完并开始执行的标志是回车换 行键行键;命令执行完成的标志是出现新的命令命令执行完成的标志是出现新的命令 提示符提示符$。例如:例如:$date (显示当前系统的日期和时间)(显示当前系统的日期和时间)Fri Sep 5 18:19:01 EDT 2003$_Who 命令(查看系统中(查看系统中所有所有已登录用户状况)已登录用户状况)Who命令可列出当前登录到系统的所有用户的登录名,终端号和登录时间。可用who命令检查系统状态,或某个用户是否正在使用系统 说明:说明:.同一个登录名可以被同一个人或多人同时使同一个登录名可以被同一个人或多人同时使 用多次用多次 .终端号通常可以表明使用者的

50、位置,但并不终端号通常可以表明使用者的位置,但并不 肯定(对虚终端而言)肯定(对虚终端而言)$who am i (我是谁)(我是谁)teacher tty02 Sep 05 08:25$who H (显示各列信息标题显示各列信息标题)NAME LINE TIMEteacher tty02 Sep 05 08:25student1 tty26 Sep 05 10:27student1 tty15 Sep 05 10:38student5 ttyp09 Sep 05 10:10$who q (显示简要用户列表和用户总(显示简要用户列表和用户总数)数)teacher student1 student

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com