《计算机基础》6.操作系统之基础篇
6.1 章节导学
操作系统的演变
多道程序设计:计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 多道程序设计可以提高CPU利用率。
对每个进程来说,它拥有自己虚拟的CPU,而实际的CPU忙于在各个进程之间来回切换。这种快速的切换运行也就是多道程序设计。
操作系统的功能:
进程管理
进程实体
五状态模型
进程同步
Linux进程管理
作业管理
- 进程调度
- 死锁
存储管理
- 内存分配与回收
- 段页式存储管理
- 虚拟内存
- linux存储管理
文件管理
操作系统的文件管理
Linux的文件系统
Linux文件的基本操作
操作系统的设备管理
6.2 操作系统概览
操作系统资源
- 处理器资源
- 存储器资源(寄存器、cache、内存、硬盘等)
- IO设备资源
- 文件资源(?)
操作系统为用户提供的控制方式:
GUI
命令
系统调用(API,编程用)
操作系统四个性质
1. 并发性
并发性是学习后面三个性质的前提。
并发和并行
并发(concurrency):两个或多个事件在同一个时间间隔内发生。单核单cpu只能做到并发(同一时刻只能运行一个程序),但是短时间(如1秒)内可能运行多个进程,给人并发的感觉,叫做伪并行。
并行(parallel):两个或多个事件在同一时间点发生。单CPU多核中线程可以并行、多CPU计算机中进程可以并行。
2. 共享性
操作系统的资源可被并发的程序共享。
例如:内存中存放着两个并发运行的程序,他们共享了内存。
两种共享方式:
* 互斥访问形式:某种资源在一个时间上只能同时被一个程序使用,其他程序需要等待或者放弃。(微观)
* 同时访问形式:某种资源在一段时间内并发地被多个程序访问。(宏观)
3. 虚拟性
把一个物理实体转变为多个逻辑实体。物理实体是真实存在的,而逻辑实体是虚拟的。虚拟性可以提高资源利用率。
时分复用技术:复用时间资源,不同程序并发使用。
虚拟处理器技术、虚拟设备技术
空分复用技术:复用空间资源。
虚拟硬盘(一块硬盘分为C、D、E盘)、虚拟内存(逻辑上扩大内存)
4. 异步性
多道程序环境下,允许多个进程并发执行,进程在得不到互斥资源时可以选择等待或者放弃。
由于互斥访问资源的存在,程序以不可预知的顺序并发运行,走走停停地执行。
例如程序A释放打印机的使用后,程序B和C进行抢占,但具体是谁抢占到、抢占到的程序使用打印机多久都无法预知。这些都会影响这些异步程序的顺序和时间。
6.3 进程管理之进程实体
内存中的进程形态
为什么需要进程:
没有操作系统时,整个系统一次只能运行一个程序,所有资源都属于这个程序;为了提高系统资源利用率,引入操作系统和多道程序技术,使得多个程序能够共用系统资源,操作系统通过进程(即)对这些程序的拥有资源进行管理。
为了实现进程管理,操作系统维护着一个表格(一个结构体数组),即进程表。每个进程占用一个进程表项,也叫做进程控制块(Processing Control Block, PCB),这个进程控制块中保存着进程的重要信息。
PCB常驻内存,并且存放在专门的位置
进程与线程
进程:操作系统资源分配的最小单位。
线程:操作系统调度的最小单位。
了解为什么需要线程,可以帮助理解这两个最小单位(基本单位):point_down::
在传统的OS中(引入线程前),进程是系统分配资源和进行调度的基本单位。线程则是系统实施调度的基本的、独立的单位。线程基本上不拥有资源,只拥有一点运行必不可少的资源。
引入线程的原因:由于在进程的创建、撤消和切换过程中,系统付出的时空代价较大,因此在系统中的进程数目不宜过多,进程切换不能过于频繁,这就限制了并发程度的提高。引入线程之后,将传统的进程的两个基本属性分开,也就是说在传统的OS中,进程是系统分配资源和进行调度的基本单位,当引入线程之后,进程只作为分配资源的基本单位,而将线程作为调度的基本单位。可以通过创建线程来完成任务,提高了并发程度。
进程和线程的关系:
- 一个进程可以并发多个线程,每个线程执行不同的任务。
- 线程包含在进程中,是进程中实际运行工作的单位。
- 线程共享进程的资源(线程间通信也是通过读写进程的资源来实现的)。