1、ppt课件课件.1第第8章章 操作系统实例二:操作系统实例二:Linux 教学目标:本章的重点:了解Linux操作系统的特点、进程通信和调度、三级页式虚拟存储器管理、VFS和ext2文件系统以及Linux的安全机制等内容。教学提示:Linux是可免费获得的多用户、多任务操作系统,是可以自由使用的UNIX兼容产品,这就是学习Linux的主要原因。了解Linux操作系统的特点、核心技术和实现方法有助于该系统进一步的开发和应用。ppt课件课件.28.1 Linux概述概述 8.1.1 8.1.1 学习学习LinuxLinux操作系统的意义操作系统的意义8.1.2 Linux8.1.2 Linux系统
2、的特点系统的特点8.1.3 Linux 8.1.3 Linux 系统的发展系统的发展ppt课件课件.38.1.4 Linux8.1.4 Linux体系结构体系结构 ppt课件课件.48.1.5 Linux8.1.5 Linux的用户界面的用户界面 ppt课件课件.58.2 Linux的进程管理的进程管理 8.2.1 Linux8.2.1 Linux进程的组成进程的组成LinuxLinux系统中的进程都具有以下系统中的进程都具有以下4 4个要素。个要素。(1)(1)有一个程序正文段供其执行。有一个程序正文段供其执行。(2)(2)有进程专用的系统堆栈空间。有进程专用的系统堆栈空间。(3)(3)有一
3、个进程描述符,即在内核中的一个有一个进程描述符,即在内核中的一个task_structtask_struct数据结构。数据结构。有了这个数据结构,进程才能成为内核调度的一个基本单位,接受内有了这个数据结构,进程才能成为内核调度的一个基本单位,接受内核的调度。同时,该结构还记录着进程所占用的各项资源。核的调度。同时,该结构还记录着进程所占用的各项资源。(4)(4)有一个独立的地址空间,即拥有专有的用户空间和专用的用户空有一个独立的地址空间,即拥有专有的用户空间和专用的用户空间堆栈。间堆栈。ppt课件课件.68.2.2 Linux进程的状态进程的状态 LinuxLinux的进程状态共有的进程状态共
4、有6 6种。种。(1)(1)TASK_RUNNINGTASK_RUNNING:正在运行:正在运行(己获得己获得CPU)CPU)或准备运行或准备运行(就绪态就绪态等待获得等待获得CPU)CPU)的进程的进程。(2)(2)TASK_INTERRUPTIBLETASK_INTERRUPTIBLE:可中断等待状态。进程处于等待队列中,一旦资:可中断等待状态。进程处于等待队列中,一旦资源可用时被唤醒,也可以由其他进程通过信号源可用时被唤醒,也可以由其他进程通过信号(SIGNAL)(SIGNAL)或中断唤醒。或中断唤醒。(3)(3)TASK_UNINTERRUPTIBLETASK_UNINTERRUPTI
5、BLE:不可中断等待状态。进程处于等待队列中,一:不可中断等待状态。进程处于等待队列中,一旦资源可用时被唤醒,但不可以由其他进程通过信号旦资源可用时被唤醒,但不可以由其他进程通过信号(SIGNAL)(SIGNAL)或中断唤醒。或中断唤醒。(4)(4)TASK_ZOMBIETASK_ZOMBIE:进程僵死状态。进程停止运行但是尚未释放:进程僵死状态。进程停止运行但是尚未释放PCBPCB。(5)(5)TASK_STOPPEDTASK_STOPPED:进程停止状态。可能被特定信号终止,也可能是受其他:进程停止状态。可能被特定信号终止,也可能是受其他进程的跟踪调用而暂时将进程的跟踪调用而暂时将CPUC
6、PU出让给跟踪它的进程。出让给跟踪它的进程。(6)(6)TASK_SWAPPINGTASK_SWAPPING:页面被交换出内存的进程。:页面被交换出内存的进程。ppt课件课件.7运行态就绪态不可中断等等态停止态等等态僵死态进程终止时间片到进程调度收到停止命令而暂停所需资源已满足被唤醒未申请到所需资源所需资源已满足未申请到所需资源ppt课件课件.88.2.3 8.2.3 进程状态的切换时机进程状态的切换时机第一类是隐式地主动放弃第一类是隐式地主动放弃CPUCPU。这往往是因为需。这往往是因为需要的资源目前不能获取,如执行要的资源目前不能获取,如执行read()read()、selec()sele
7、c()等系统调用的过程中。等系统调用的过程中。第二类是进程显式地主动放弃第二类是进程显式地主动放弃CPUCPU,如系统调用,如系统调用sched_yield()sched_yield()、sched_setscheduler()sched_setscheduler()及及pause()pause()均会导致当前进程让出均会导致当前进程让出CPUCPU。ppt课件课件.98.2.4 Linux8.2.4 Linux的进程控制的进程控制 进程的创建进程的创建 LinuxLinux操作系统中,除初始化进程外,其操作系统中,除初始化进程外,其他进程都是用系统调用他进程都是用系统调用fork()fork
8、()和和clone()clone()创创建的,调用建的,调用fork()fork()和和clone()clone()的进程是父进的进程是父进程,被生成的进程是子进程。程,被生成的进程是子进程。ppt课件课件.102.2.进程的等待进程的等待 父进程可用系统调用父进程可用系统调用wait3()wait3()等待它的任等待它的任何一个子进程终止,也可以用系统调用何一个子进程终止,也可以用系统调用wait4()wait4()等待某个特定的子进程终止。等待某个特定的子进程终止。ppt课件课件.113.3.进程的终止进程的终止 当命令执行完,希望终止自己时,可在其当命令执行完,希望终止自己时,可在其程序
9、末尾使用系统调用程序末尾使用系统调用exit()exit()。ppt课件课件.124.4.进程上下文切换进程上下文切换 改变进程上下文的工作很复杂,是由系统改变进程上下文的工作很复杂,是由系统调用调用execve()execve()实现的。它用一个可执行文件实现的。它用一个可执行文件的副本覆盖该进程的内存空间。的副本覆盖该进程的内存空间。ppt课件课件.138.2.5 Linux 8.2.5 Linux 线程线程 LinuxLinux并不确切区分进程与线程,或者说并不确切区分进程与线程,或者说没有真正意义上的线程概念,但通过没有真正意义上的线程概念,但通过clone()clone()系 统 调
10、 用,可 以 支 持 轻 量 级 进 程系 统 调 用,可 以 支 持 轻 量 级 进 程(Lightweight Process)(Lightweight Process)。ppt课件课件.148.2.6 PCB8.2.6 PCB(进程控制块进程控制块)L i n u x L i n u x 内 核 利 用 一 个 数 据 结 构内 核 利 用 一 个 数 据 结 构(task_struct)(task_struct)标志一个进程的存在。标志一个进程的存在。task_structtask_struct也就是也就是LinuxLinux进程控制块进程控制块PCB PCB ppt课件课件.158.
11、2.7 8.2.7 进程的调度进程的调度 LinuxLinux中实现了中实现了3 3种进程调度策略。种进程调度策略。SCHED_FIFOSCHED_FIFO:先进先出:先进先出(First In First Out)(First In First Out)策略。策略。SCHED_RRSCHED_RR:轮转调度:轮转调度(RoundRobin)(RoundRobin)策略。策略。SCHED_OTHERSCHED_OTHER:其他策略。:其他策略。ppt课件课件.168.8.2.8 Linux8.8.2.8 Linux进程通信进程通信 信号是信号是UNIXUNIX系统中最古老的进程间通信机系统中最
12、古老的进程间通信机制,它主要用来向进程发送异步的事件信号。制,它主要用来向进程发送异步的事件信号。LinuxLinux中,信号种类的数目和具体的平台中,信号种类的数目和具体的平台有关,因为内核用一个字代表所有的信号,有关,因为内核用一个字代表所有的信号,因此字的位数就是信号种类的最多数目。对因此字的位数就是信号种类的最多数目。对3232位的位的i386i386平台而言,一个字为平台而言,一个字为3232位,因此位,因此信号有信号有3232。ppt课件课件.178.2.9 8.2.9 信号量与信号量与PVPV操作操作 信号量也用来保护关键代码或数据结构信号量也用来保护关键代码或数据结构(即临界资
13、源即临界资源)。LinuxLinux利用信号量实现对关键代码和数据的互斥访问。利用信号量实现对关键代码和数据的互斥访问。LinuxLinux信号量数据结构中包含的信息主要有。信号量数据结构中包含的信息主要有。count(count(计数计数)waking(waking(等待唤醒计数等待唤醒计数)3)3)等待队列等待队列4)lock(4)lock(锁锁)ppt课件课件.188.2.10 8.2.10 管道管道 管道是管道是LinuxLinux中最常用的进程间通信中最常用的进程间通信IPCIPC机机制。利用管道时,一个进程的输出可成为另制。利用管道时,一个进程的输出可成为另外一个进程的输入。当输入
14、输出的数据量特外一个进程的输入。当输入输出的数据量特别大时,这种别大时,这种IPCIPC机制非常有用。机制非常有用。ppt课件课件.198.2.11 8.2.11 共享存储区与消息队列通信机制共享存储区与消息队列通信机制 1.Linux1.Linux进程间的共享存储区通信进程间的共享存储区通信 ppt课件课件.202.Linux2.Linux进程间的消息队列进行通信进程间的消息队列进行通信 LinuxLinux进程间的通信也可以通过消息队列进程间的通信也可以通过消息队列进行。消息队列可以是单消息队列,也可以进行。消息队列可以是单消息队列,也可以是多消息队列是多消息队列(按消息类型按消息类型);
15、既可以单向,;既可以单向,也可以双向通信;既可以仅和两个进程有关,也可以双向通信;既可以仅和两个进程有关,也可以被多个进程使用。也可以被多个进程使用。ppt课件课件.218.3.1 Linux8.3.1 Linux的虚拟内存管理的虚拟内存管理 LinuxLinux的虚拟内存管理功能可以概括为以的虚拟内存管理功能可以概括为以下几点。下几点。(1)(1)地址空间扩充。地址空间扩充。(2)(2)进程保护。进程保护。(3)(3)内存映射。内存映射。(4)(4)物理内存分配。物理内存分配。8.3 Linux 存储器管理存储器管理 ppt课件课件.228.3.2 Linux8.3.2 Linux系统采用三
16、级页表系统采用三级页表 PGD表 项 下 标PMD表 项 下 标PT下 标页 内 偏 移 量物 理 地 址PGD基 地 址ppt课件课件.238.3.3 8.3.3 内存页的分配与释放内存页的分配与释放 LinuxLinux系统的物理内存页分配采用链表和系统的物理内存页分配采用链表和位图相结合的方法。位图相结合的方法。ppt课件课件.248.3.4 8.3.4 内存交换内存交换 当系统出现内存不足时,当系统出现内存不足时,LinuxLinux内存管理内存管理子系统就要释放一些内存页,从而增加系统子系统就要释放一些内存页,从而增加系统中空闲内存页的数量。此任务是由内核的交中空闲内存页的数量。此任
17、务是由内核的交换守护进程换守护进程kswapdkswapd完成的。完成的。ppt课件课件.258.3.5 8.3.5 内存的共享和保护内存的共享和保护 LinuxLinux中内存共享是以页共享的方式实现的中内存共享是以页共享的方式实现的LinuxLinux可以对虚存段中的任一部分加锁或保护。可以对虚存段中的任一部分加锁或保护。ppt课件课件.268.3.6 8.3.6 缺页中断缺页中断 磁盘中的可执行文件映像一旦被映射到一磁盘中的可执行文件映像一旦被映射到一个进程的虚拟空间,它就开始执行。由于一个进程的虚拟空间,它就开始执行。由于一开始只有该映像区的开始部分被调入内存,开始只有该映像区的开始部
18、分被调入内存,因此,进程迟早会执行那些未被装入内存的因此,进程迟早会执行那些未被装入内存的部分。当一个进程访问了一个还没有有效页部分。当一个进程访问了一个还没有有效页表项的虚拟地址时,处理器将产生缺页中断,表项的虚拟地址时,处理器将产生缺页中断,通知操作系统,并把缺页的虚拟地址通知操作系统,并把缺页的虚拟地址(保存保存在在CR2CR2寄存器中寄存器中)和缺页时访问虚存的模式一和缺页时访问虚存的模式一并传给并传给LinuxLinux的缺页中断处理程序。的缺页中断处理程序。ppt课件课件.278.4 Linux文件管理文件管理 8.4.1 Linux8.4.1 Linux文件系统的目录结构文件系统
19、的目录结构 LinuxLinux采用的是树型目录结构管理文件。最采用的是树型目录结构管理文件。最上层是根目录,其他的所有目录都是从根目录上层是根目录,其他的所有目录都是从根目录出发而生成的。出发而生成的。ppt课件课件.288.4.2 Linux8.4.2 Linux文件系统的实现文件系统的实现 LinuxLinux支持多种不同类型的文件系统,包括支持多种不同类型的文件系统,包括EXTEXT、EXT2EXT2、MINIXMINIX、UMSDOSUMSDOS、NCPNCP、IS09660IS09660、HPFSHPFS、MSDOSMSDOS、NTFSNTFS、XIAXIA、VFATVFAT、PR
20、OCPROC、NFSNFS、SMBSMB、SYSVSYSV、AFFSAFFS以及以及UFSUFS等。等。由于每一种文件系统都有自己的组织结构和文件操作函由于每一种文件系统都有自己的组织结构和文件操作函数,并且相互之间的差别很大,数,并且相互之间的差别很大,LinuxLinux文件系统的实现有文件系统的实现有一定的难度。为支持上述的各种文件系统,一定的难度。为支持上述的各种文件系统,LinuxLinux在实现在实现文件系统时采用了两层结构。第一层是虚拟文件系统文件系统时采用了两层结构。第一层是虚拟文件系统(Virtual File System(Virtual File System,VFS)V
21、FS),它把各种实际文件系统,它把各种实际文件系统的公共结构抽象出来,建立统一的以的公共结构抽象出来,建立统一的以i_nodei_node为中心的组为中心的组织结构,为实际文件系统提供兼容性。它的作用是屏蔽织结构,为实际文件系统提供兼容性。它的作用是屏蔽各类文件系统的差异,给用户、应用程序和各类文件系统的差异,给用户、应用程序和LinuxLinux的其他的其他管理模块提供统一的接口。第二层是管理模块提供统一的接口。第二层是LinuxLinux支持的各种实支持的各种实际文件系统。际文件系统。ppt课件课件.298.4.3 8.4.3 虚拟文件系统虚拟文件系统 虚拟文件系统虚拟文件系统(VFS)(
22、VFS)是物理文件系统与服是物理文件系统与服务之间的一个接口层,它对每一个具体的文务之间的一个接口层,它对每一个具体的文件系统的所有细节进行抽象,使得件系统的所有细节进行抽象,使得LinuxLinux用用户能够用同一个接口使用不同的文件系统。户能够用同一个接口使用不同的文件系统。ppt课件课件.308.4.4 EXT28.4.4 EXT2文件系统文件系统 扩展文件系统扩展文件系统EXTEXT和第二代扩展文件系统和第二代扩展文件系统EXT2EXT2是专门为是专门为LinuxLinux设计可扩展的文件系统。设计可扩展的文件系统。ppt课件课件.318.4.5 Linux8.4.5 Linux的文件
23、操作系统调用的文件操作系统调用 1.1.文件的打开文件的打开 主要函数有主要函数有sys_open()sys_open()和和sys_creat()sys_creat()。2.2.文件的关闭文件的关闭 3.3.文件指针移动文件指针移动 4.4.读写文件操作读写文件操作 5.5.文件属性控制文件属性控制 6.6.文件上锁文件上锁 7.7.文件的文件的I/OI/O控制控制 8.8.各种其他文件操作各种其他文件操作 ppt课件课件.328.5 Linux设备管理设备管理 8.5.1 Linux8.5.1 Linux设备驱动程序设备驱动程序 LinuxLinux核心具体负责核心具体负责I/OI/O设备
24、的操作,这些管设备的操作,这些管理和控制硬件设备控制器的程序代码称为设备理和控制硬件设备控制器的程序代码称为设备驱动程序,它们是常驻内存的底层硬件处理子驱动程序,它们是常驻内存的底层硬件处理子程序,具有控制和管理程序,具有控制和管理I/OI/O设备的作用。设备的作用。ppt课件课件.338.5.2 8.5.2 设备的管理设备的管理 在在LinuxLinux操作系统中,输入输出设备可以操作系统中,输入输出设备可以分为字符设备、块设备和网络设备。分为字符设备、块设备和网络设备。ppt课件课件.348.6 Linux安全机制安全机制 8.6.1 Linux8.6.1 Linux自身的安全机制自身的安全机制 LinuxLinux自身的安全机制主要包括以下几方面。自身的安全机制主要包括以下几方面。(1)(1)身份识别和认证。身份识别和认证。(2)(2)安全的审计。安全的审计。(3)(3)访问控制。访问控制。(4)(4)入侵防御。入侵防御。(5)(5)提供安全的服务和应用。提供安全的服务和应用。此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!