linux课程总结分析报告
一、Linux系统概念模型
linux系统主要分为内核、shell、文件系统和应用程序四大块,其中内核、shell和文件系统一起形成了基本的操作系统,其具体如图所示:

本文主要从进程管理、内存管理、文件管理、驱动管理进行总结
二、进程管理
进程是由正文段、用户数据段和系统数据段组成的一个动态实体。 进程控制块PCB是名字为task_struct的数据结构,它称为任务结构体,任务结构体中容纳了一个进程的所有信息,是系统对进程进行管理和控制的有效手段,是系统实现进程调度的主要依据。当一个进程被创建时,系统就为该进程建立一个 task_struct任务结构体。当进程运行结束时,系统撤消该进程的任务结构体。 进程的任务结构体是进程存在的唯一标志。Linux在内存空间中开辟了一个专门的区域来存放进程的任务结构体。
进程管理离不开进程调度,不同的进程调度对应不同的处理机制,但所有的进程调度都是不同进程状态之间的转化:

三、中断管理
四、文件管理
文件管理是操作系统中非常重要的一个环节,在linux中,为了统一不同类型的文件管理系统,提出了VFS的概念,VFS将不同的文件管理系统统一接口,极大的方便了操作系统的运行,在VFS中,有四个重要的数据结构:
超级块对象super_block:描述一个文件系统的信息
索引节点对象inode:文件系统一个文件的全部信息
文件对象file:一个文件指针,指向文件当前的位置,下一个操作将在当前位置发生
目录项对象dentry:与文件相关,指向文件的inode,加快对文件的快速定位
这些数据结构帮助系统更好的管理文件系统,同时,在分别有files_struct(记录文件名描述符的相关情况)和fs_struct(进行文件查找)帮助VFS管理进程相关的内容。
五、驱动管理
linux中万物皆文件,驱动在系统中也像文件一样被管理,以字符驱动设备为例,内核中每个字符设备都对应一个cdev结构的变量,注册字符设备驱动程序时,首先调用函数向系统申请设备号,在Linux内核中存在一个数组chrdev保存所有字符设备驱动程序信息,通过数组可以调用指定设备号的字符驱动程序。在linux系统中,设备的操作演变成对文件的操作,因此设备驱动程序最重要的工作就是编写fops指针对应的文件操作函数。每个打开的设备文件均与一组函数关联。
六、影响程序性能的因素
影响程序性能的因素有很多,同样的程序面对不同的进程调度算法会得出不同的运行时间,下面分别介绍一下常见的进程调度算法:
先来先服务法:每次从就绪队列中选择一个最先进入该队列的进程,把CPU分给它,令其运行。该进程一直运行下去,直至完成或由于某些原因而阻塞,才放弃CPU。
短作业优先法:当调度机分配CPU时,选择所需处理时间最短的进程。短进程将越过长进程,跳到队列头。一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机。
高响应比优先法:在调度作业时,挑选响应比最高的作业运行。若作业等待时间相同,则要求服务的时间越短,其响应比越高,有利于短作业。当要求服务时间相同时,作业的响应比由其等待时间决定,等待时间越长,响应比越高,因而它实现的是先来先服务。(响应比=(等待服务时间+要求服务时间)/要求服务时间)
最短剩余时间优先法:当新进程进入就绪队列时,如果它需要的运行时间比当前运行的进程所需的剩余时间还短,则执行切换,当前运行进程被剥夺CPU的控制权,调度新进程运行。
上面每个进程调度算法都有各自的使用场景,如果选对适用的场景,不仅能事半功倍,更能极大限度释放电脑的性能,充分利用计算资源。

浙公网安备 33010602011771号