标签:进程状态 研究 知识 兴趣 管理所 理解 阻塞 基于 清理
一、精简的Linux系统概念模型概述
一个精简的Linux系统概念模型主要应该包括:进程管理,内存管理,文件和设备管理这几个主要部分,还应该有GUI等方便用户操作的平台。
操作系统的第一要务是帮助用户操作所有计算机硬件,应该将硬件设备封装成接口供用户调用。同时为了保证系统安全,应该实现用户空间和内核空间的分离。
进程管理主要负责管理进程,包括进程的创建,运行,调度,清理的全生命流程。
内存管理主要是内存设备的使用,合理控制硬件设备,不浪费系统资源,尽最大程度的合理利用系统资源。
文件和设备管理是负责帮助用户管理各种设备,将各式各样的设备封装成同一的接口,这样可以尽可能地提供统一地服务给用户。
GUI是统一图形界面,通过统一图形界面,可以增强系统的易用性,降低用户接触的门槛。但是优先级相对较低,毕竟Linux系统主要用于计算环境,较少用于与用户直接交互。
二、用户空间和内核空间的分离
用户空间和内核空间的分离,可以最大限度地保证系统安全,同时可以增强系统易用性和程序地复用性。首先需要做出如下规定:
用户态:指令受到限制,无法直接操作一些硬件。
用户态和内核态有各自地内存空间,彼此分离,无法访问对方的内存空间。
另外还必须保证程序员可以通过封装好的C语言库进入内核态,使用的方法是系统调用:
在用户态进入内核态时需要通过中断保存用户态的现场,在回到用户态时恢复现场。
为了实现系统的各种操作,需要实现一个系统调用表,通过这个系统调用表可以在用户态对计算机进行操作。
三、进程管理
首先每个进程需要一个进程描述符,这个进程描述符描述了进程的各种信息。Linux用一个数据结构struct task_struct描述进程。包括进程状态,进程双向链表管理,控制台tty,文件系统fs描述,文件描述符files,内存管理描述mm和进程间通信signal等等。
为了管理所有进程,操作系统需要将进程集合起来,放在一个链表中。定义不同的进程状态,包括有就绪态,运行态,阻塞态三种基本状态,通过不同的状态对进程进行不同的操作。
管理进程最重要的就是进程的调度,如何调度进程非常重要,Linux采用的基于优先级的进程调度方法。对时间要求严格的实时进程拥有更高的优先级,对时间要求更低的用户进程有低一些的优先级。高的优先级更容易获得各种资源,低优先级的进程相对困难。
进程还需要解决的一个问题就是进程的创建,第一个进程通过硬编码实现,其他的进程通过复制第一个进程并修改重要信息实现。
四、内存管理
虽然这一部分在本课程中没有提及,可能是知识较为浅显,但是我认为内存管理是操作系统的重要功能之一。
内存管理主要是管理计算机的内存资源,进行合理的分配与回收。内存的分配与回收应该是与进程管理相关的,通过进程管理合理的分配计算机的内存资源。
内存管理主要采用页式或者段页式管理办法。因为这种管理方法内存利用率较高,内存浪费较少,可以更好的利用内存资源。
五、文件和设备管理
在linux中,文件和设备都是文件。Linux通过操作文件的方法操作外设,可以对支持更多的用户程序。
文件主要是由一般文件和特殊文件构成,一般文件指的是主要的字符流文件,特殊文件是指特殊的目录文件和设备文件。
文件系统需要帮助用户管理千差万别的磁盘设备,在不同的磁盘设备上进行读写。
通过虚拟文件系统模型向用户提供统一的文件操作,然后在底层对不同的设备实现不同的功能。
文件系统还需要与进程有紧密的联系,这样才能保证进程的使用和文件的读取。
六、其他功能
最重要的就是中断功能,中断功能让系统可以同时处理多个任务。
中断功能需要在内核空间实现,而且需要硬件系统的支持。主要功能是,确定中断信号,保护现场,引导对应的中断处理程序处理中断,中断处理完后恢复现场。
需要注意中断处理的原则,快!
中断处理程序的抢占原则是:普通进程可以被中断或异常处理程序打断,异常处理程序可以被中断程序打断,中断程序只可能被其他的中断程序打断
七、总结
上面只是总结了操作系统的重要模块,实际上每个模块都复杂无比。通过本课程,我了解了Linux操作系统的底层知识,对操作系统有了更深一层的认识,我相信这必将让我受益匪浅。本课程也燃起了我对操作系统的兴趣,我将继续研究操作系统,因为深入理解这个复杂的操作系统可以让我有无比自豪的成就感。
标签:进程状态 研究 知识 兴趣 管理所 理解 阻塞 基于 清理
原文地址:https://www.cnblogs.com/logan233/p/13276311.html