预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章操作系统实例二:Linux8.1Linux概述8.1.4Linux体系结构 8.1.5Linux的用户界面 8.2Linux的进程管理8.2.2Linux进程的状态. 8.2.3进程状态的切换时机 第一类是隐式地主动放弃CPU。这往往是因为需要的资源目前不能获取,如执行read()、selec()等系统调用的过程中。 第二类是进程显式地主动放弃CPU,如系统调用sched_yield()、sched_setscheduler()及pause()均会导致当前进程让出CPU。 8.2.4Linux的进程控制 进程的创建 Linux操作系统中,除初始化进程外,其他进程都是用系统调用fork()和clone()创建的,调用fork()和clone()的进程是父进程,被生成的进程是子进程。 2.进程的等待 父进程可用系统调用wait3()等待它的任何一个子进程终止,也可以用系统调用wait4()等待某个特定的子进程终止。 3.进程的终止 当命令执行完,希望终止自己时,可在其程序末尾使用系统调用exit()。 4.进程上下文切换 改变进程上下文的工作很复杂,是由系统调用execve()实现的。它用一个可执行文件的副本覆盖该进程的内存空间。 8.2.5Linux线程 Linux并不确切区分进程与线程,或者说没有真正意义上的线程概念,但通过clone()系统调用,可以支持轻量级进程(LightweightProcess)。 8.2.6PCB(进程控制块) Linux内核利用一个数据结构(task_struct)标志一个进程的存在。task_struct也就是Linux进程控制块PCB 8.2.7进程的调度 Linux中实现了3种进程调度策略。 SCHED_FIFO:先进先出(FirstInFirstOut)策略。 SCHED_RR:轮转调度(RoundRobin)策略。 SCHED_OTHER:其他策略。 8.8.2.8Linux进程通信 信号是UNIX系统中最古老的进程间通信机制,它主要用来向进程发送异步的事件信号。 Linux中,信号种类的数目和具体的平台有关,因为内核用一个字代表所有的信号,因此字的位数就是信号种类的最多数目。对32位的i386平台而言,一个字为32位,因此信号有32。 8.2.9信号量与PV操作 信号量也用来保护关键代码或数据结构(即临界资源)。Linux利用信号量实现对关键代码和数据的互斥访问。 Linux信号量数据结构中包含的信息主要有。 count(计数) waking(等待唤醒计数) 3)等待队列 4)lock(锁) 8.2.10管道 管道是Linux中最常用的进程间通信IPC机制。利用管道时,一个进程的输出可成为另外一个进程的输入。当输入输出的数据量特别大时,这种IPC机制非常有用。 8.2.11共享存储区与消息队列通信机制 1.Linux进程间的共享存储区通信 2.Linux进程间的消息队列进行通信 Linux进程间的通信也可以通过消息队列进行。消息队列可以是单消息队列,也可以是多消息队列(按消息类型);既可以单向,也可以双向通信;既可以仅和两个进程有关,也可以被多个进程使用。 8.3.1Linux的虚拟内存管理 Linux的虚拟内存管理功能可以概括为以下几点。 (1)地址空间扩充。 (2)进程保护。 (3)内存映射。 (4)物理内存分配。 8.3.2Linux系统采用三级页表 8.3.3内存页的分配与释放 Linux系统的物理内存页分配采用链表和位图相结合的方法。 8.3.4内存交换 当系统出现内存不足时,Linux内存管理子系统就要释放一些内存页,从而增加系统中空闲内存页的数量。此任务是由内核的交换守护进程kswapd完成的。 8.3.5内存的共享和保护 Linux中内存共享是以页共享的方式实现的 Linux可以对虚存段中的任一部分加锁或保护。 8.3.6缺页中断 磁盘中的可执行文件映像一旦被映射到一个进程的虚拟空间,它就开始执行。由于一开始只有该映像区的开始部分被调入内存,因此,进程迟早会执行那些未被装入内存的部分。当一个进程访问了一个还没有有效页表项的虚拟地址时,处理器将产生缺页中断,通知操作系统,并把缺页的虚拟地址(保存在CR2寄存器中)和缺页时访问虚存的模式一并传给Linux的缺页中断处理程序。 8.4Linux文件管理8.4.2Linux文件系统的实现 Linux支持多种不同类型的文件系统,包括EXT、EXT2、MINIX、UMSDOS、NCP、IS09660、HPFS、MSDOS、NTFS、XIA、VFAT、PROC、NFS、SMB、SYSV、AFFS以及UFS等。由于每一种文件系统都有自己的组织结构和文件操作函数,并且相互之间的差