计算机操作系统学习总结


整体思维导图

在这里插入图片描述
在这里插入图片描述

计算机操作系统是计算机硬件上的第一层软件,其为应用程序员提供一个资源集的清晰抽象,并管理这些硬件资源。
计算机操作系统这门课的主体概念有:进程/线程管理、内存管理、I/O设备管理、文件系统

进程

在这里插入图片描述

多进程概念的引出

在这里插入图片描述

进程一个接一个顺序执行,会导致CPU利用率低(因为CPU长时间在I/O等待)。如果CPU执行到一个I/O指令时,切换到其他程序上继续工作,这样在等待I/O指令的这段时间里CPU仍然是在工作的,也就提高了CPU利用率。I/O指令完成后CPU还可以继续回来执行原来这段程序,这样交替执行程序的方式就是并发
既然操作系统要管理多个进程,因此就要管理进程对应的PCB数据结构,这些PCB是会组织成队列的(因为进程之间是线性“排列”的关系),根据进程的状态(运行态、就绪态、阻塞态),PCB会被放置到相应的进程队列中。
多个进程之间要进行切换,进程切换包括资源切换和指令流切换,资源切换涉及到内存管理文件系统线程切换即为指令流的切换。

线程切换与调度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引入线程后具有了并行实体共享同一个地址空间和所有可用数据的能力,保留了并发的优点,避免了进程切换的代价(资源切换的代价),进一步提高了程序执行效率。
线程有用户级线程内核级线程。一个用户级线程在执行过程中可能会进入内核态(比如涉及到硬件的管理时),此时该线程会在内核中阻塞,此时这个进程的所有用户级线程将全部阻塞(因为操作系统无法感知到用户级线程的存在,不可能去切换到同一进程的其他用户级线程去执行),这就限制了用户级线程的并发程度,因此引出了内核级线程。
线程切换调度涉及到的是线程如何切换与何时切换、切换到哪个线程的问题。如果操作系统支持线程,线程是CPU调度的基本单位,否则进程就是CPU调度的基本单位,所以调度方法既适用于线程也适用于进程。

进程同步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多个进程在并发执行过程中,并不一定完全独立,会相互依赖,这就引出了进程同步的概念。为了实现进程同步,我们首先可以想到进程是需要信号作为标志的,但只有信号是不够的,其没有记录需要被唤醒的进程的个数,可能会出现有的进程永远不被唤醒的情况,因此就引出了信号量
多个进程对CPU的竞争会导致对信号量的发生错误的修改,为了保证多个进程互斥访问该资源,将对信号量修改这一操作实现为一个原子操作,引出了临界区
由于进程之间相互依赖,某个进程P0在某些时刻要停下来等待进程P1,而如果恰好此时P1又要停下来等待P0,那结果就是两个进程都永远无法执行,这就是死锁现象。

内存管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序正确载入内存和指令正确读写内存的过程会涉及到内存管理。程序载入内存实际上就是创建进程时的地址空间创建。
如果多个进程可以访问同一段物理内存,就可能出错,解决的办法是地址隔离,每个进程操作的地址不是物理地址而是逻辑地址,操作系统保证给每个进程分配只属于该进程的、互相不重叠的内存区域,也就是需要进行程序重定位,这体现了内存管理的必要性。有了进程的地址空间的切换的内容,进程切换也就完整了(指令序列的切换在线程切换中已经提到)。
对于内存的分段,是分治法的体现,不同的段特点不同:代码段只读、数据段可读可写、栈通常只能向下增长,分段实现了将程序中用到的数据和在这些数据上执行的操作分开考虑,便于程序员使用。
在程序载入到内存之前,需要先在内存中分割出一段空闲内存,如何分割内存?这就引出了内存分区。如果分配给进程的是整段连续的物理内存,多次内存分区之后会产生内存碎片,解决这一问题的一种方法是内存紧缩,但是开销较大,而合理的方法就是使用分页机制管理内存,内存分配以小区域为单位。
虚拟内存作为一个中间结构将段和页结合在了一起。由于实际的物理内存可能比4GB(32位操作系统)要小,因此会产生换入/换出场景,每个进程都有一个4GB大小的虚拟内存,因此物理内存即使有4GB也应该有换入换出。

设备驱动

在这里插入图片描述
在这里插入图片描述

操作系统需要管理计算机外部设备,为了让外设的使用更加方便和高效,引入了文件视图这一概念,将所有外设的使用都统一为对文件视图的使用。

文件系统

在这里插入图片描述

用户对操作系统的使用是以文件为基础的,我们编辑的文档、执行的命令,使用的外部设备在操作系统那里都是文件,所以文件系统是构成操作系统的必要组成部分。文件系统归根结底是对磁盘的驱动。

参考文献

  1. 李治军,刘宏伟 《操作系统原理、实现与实践》
  2. Andrew S. Tanenbaum 著,陈向群,马洪兵 等译 《现代操作系统》
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值