欢迎来到天天文库
浏览记录
ID:40246358
大小:576.00 KB
页数:79页
时间:2019-07-29
《操作系统教程 彭德林 第8章Linux操作系统分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主要内容:通过对Linux操作系统实例分析,进一步了解操作系统的基本概念,介绍Linux系统的进程管理、进程间通信、EXT2文件系统,存储管理等的具体实现与源码分析。学习任务:8.1Linux的进程管理8.2Linux的存储管理8.3Linux的文件管理8.4Linux的设备管理8.5Linux的shell第8章Linux操作系统分析8.1Linux的进程管理进程是在操作系统中执行特定的任务。程序是存储在磁盘上包含可执行机器指令和数据的静态实体。进程或者任务是处于活动状态的计算机程序。进程是一个随执行过程不断变化的实体。进程在生命期内将使用系统中的资源8.1.1Linux的进程系
2、统中最宝贵的资源是CPU,通常系统中只有一个CPU。Linux是一个多处理操作系统,它最终的目的是:任何时刻系统中的每个CPU上都有任务执行,从而提高CPU的利用率。如果进程个数多于CPU的个数,则有些进程必须等待到CPU空闲时才可以运行。多处理是的思路很简单;当进程需要某个系统资源时它将停止执行并等待到资源可用时才继续运行。Linux支持多种类型的可执行文件格式,如ELF,JAVA等。由于这些进程必须使用系统共享库,所以对它们的管理要具有透明性。为了让Linux来管理系统中的进程,每个进程用一个task_struct数据结构来表示(任务与进程在Linux中可以混用)。Linux
3、还支持实时进程。虽然task_struct数据结构庞大而复杂,但它可以分成一些功能组成部分,具体如下:1.State(进程状态信息)进程在执行过程中会根据环境来改变state。Linux进程有以下状态:Running:进程处于运行(它是系统的当前进程)或者准备运行状态(它在等待系统将CPU分配给它)。Waiting:进程在等待一个事件或者资源。Stopped:进程被停止。Zombie:这是由于某些原因被终止的进程,但是在task数据中仍然保留task_struct结构。它象一个已经死亡的进程。2.SchedulingInformation(调度信息)调度器需要这些信息以便判定系统
4、中哪个进程最迫切需要运行。3.Identifiers(进程标识信息)系统中每个进程都有进程标志。进程标志并不是task数组的索引,它仅仅是个数字。每个进程还有一个用户与组标志,它们用来控制进程对系统中文件和设备的存取权限。4.Inter-ProcessCommunication(进程通信信息)Linux支持经典的UnixIPC机制,如信号、管道和信号灯以及系统V中IPC机制,包括共享内存、信号灯和消息队列。5.Links(链接信息)Linux系统中所有进程都是相互联系的。除了初始化进程外,所有进程都有一个父进程。新进程不是被创建,而是被复制,或者从以前的进程克隆而来。每个进程对应
5、的task_struct结构中包含有指向其父进程和兄弟进程(具有相同父进程的进程)以及子进程的指针。6.TimesandTimers(时间和定时器信息)核心需要记录进程的创建时间以及在其生命期中消耗的CPU时间。时钟每跳动一次,核心就要更新保存在jiffies变量中,记录进程在系统和用户模式下消耗的时间量。Linux支持与进程相关的interval定时器,进程可以通过系统调用来设定定时器以便在定时器到时后向它发送信号。这些定时器可以是一次性的或者周期性的。7.Filesystem(文件系统信息)进程可以自由地打开或关闭文件,进程的task_struct结构中包含一个指向每个打开文
6、件描叙符的指针以及指向两个VFSinode的指针。8.Virtualmemory(虚拟内存信息)多数进程都有一些虚拟内存(核心线程和后台进程没有),Linux核心必须跟踪虚拟内存与系统物理内存的映射关系。9.ProcessorSpecificContext(进程上下文信息)进程可以认为是系统当前状态的总和。进程运行时,它将使用处理器的寄存器以及堆栈等等。进程被挂起时,进程的上下文-所有的CPU相关的状态必须保存在它的task_struct结构中。当调度器重新调度该进程时,所有上下文被重新设定。8.1.2Linux的进程调度所有进程部分时间运行于用户模式,部分时间运行于系统模式。进
7、程常因为执行系统调用而需要等待。调度器必须选择最迫切需要运行而且可以执行的进程来执行。可运行进程是一个只等待CPU资源的进程。为了将CPU时间合理的分配给系统中每个可执行进程,调度管理器必须将这些时间信息也保存在task_struct中,在task_struct中有如下结构:1.policy应用到进程上的调度策略。系统中存在两类Linux进程:普通与实时进程。实时进程的优先级要高于其它进程。如果一个实时进程处于可执行状态,它将先得到执行。实时进程又有两种策略:时间片轮转和先进先出
此文档下载收益归作者所有