操作系统知识点全集

作为大学必修的一门操作系统课程,现对整体框架进行总结和梳理。必须要知道计算机发展经历了四个阶段:批处理操作系统(单通道,多通道)、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。

操作系统总共包括4大部分,其中处理机管理文件管理存储管理设备管理。用一个图来表示其整体架构可以如下图所示。(操作系统也可是扩充机器

 上图是对各个管理模块的描述和之间的依赖关系,详细内容分布(操作系统特征运行机制体系结构)主要看下图:


一、操作系统特征

  • 并发:宏观上一段时间内完成两个或者多个任务称为并发。并行是指在同一时刻能运行多条指令。引入进程的目的一是系统可以并发执行。
  • 共享:资源共享即为共享,有两种类型:互斥共享(打印机等类似资源等待的任务)、同时共享(磁盘共享)。
  • 虚拟:把一个物理存储空间映射为一个连续的较大的虚拟地址(地址空间)。包括两种:分时复用技术(CPU时间段分开)、空分复用技术(资源占有分时利用)。
  • 异步:进程不是一次执行结束,而是在一个时间段内走走停停,但最后执行完任务。

在这里:并发共享构成了操作系统的基本特征,两者相互依存又相互影响


二、操作系统的系统作为资源的管理者,共包含四大部分。

  • 处理机管理:主要是进程的管理,包括:进程调度,进程同步、进程通信、死锁、进程控制。
  • 文件管理:计算机内部信息的文件存储,文件管理包括:文件存储空间管理、目录管理、文件读写和保护。
  • 存储管理:内存分配、地址映射、内存保护和共享、内存扩充(虚拟表映射)
  • 设备管理:用户和计算机的I/O操作,包括:缓存管理、设备分配、虚拟设备。

三、体系结构

  • 大内核:将操作系统作为一个整体放在内核当中。
  • 微内核:将操作系统的功能进行详细划分,只有微内核在内核态中存在,其他的在用户态。由于存在用户态和内核态的切换所以会影响系统整体性能。

 四、运行机制

中断:外中断(强迫中断,包括了人为干预、外部设备请求,时钟中断);内中断(自愿中断:指令中断,强迫中断:硬件或者软件故障)。

异常:

系统调用概念:一个进程在用户态想使用内核态的功能时,就需要进行系统陷入内核状态,其过程由操作系统完成。简要操作如下图所示。

用户态(目态):

内核态(管态):与硬件紧密相关联的模块;包含了时钟管理(计时,分时调度,程序运行时间长度);中断机制(提高多道程序运行效率);原语(接近底层的硬件驱动程序,控制硬件的交互。其中有处理机管理、存储管理、设备管理)

Linux系统调用包括:

进程控制:fork(); wait();阻塞 exit();

进程通信:pipe();管道 shmget(); mmap(); 文件地址映射

文件操作:open(); read(); write();

设备操作:ioctrl(); read(); write();

信息维护:getpid(); alarm(); sleep();

安全:chmod(); 改变文件访问权限 umask(); chown();


处理机管理中进程管理为核心部分。

进程:资源分配的基本单位,进程控制块(PCB)记录进程的基本信息和运行状态。程序会调用一个或多个进程。

线程:独立调度的基本单位,一个进程中有多个线程占有共有资源。

进程和线程的区别:

  1. 占有资源:进程是资源分配的基本单位,线程不拥有独立的资源,可访问在独立进程下的资源。
  2. 调度:线程是调度的基本单位,同一进程之间的线程是不引起进程的切换,进程切换会引起切换。
  3. 系统开销:进程(资源回收)之间的调度会花费比线程(寄存器信息存储)多的资源空间。
  4. 通信方面:进程通信需要用到:互斥和同步。线程通信需要创建全局变量。

进程的状态和切换

就绪状态ready:资源和其他条件具备,需处理机分配执行时间。

阻塞状态wait:资源不够用,或事件驱动使其等待。

运行状态running:任务处理。

就绪、运行、阻塞状态之间的切换如下图所示。

注意:只有就绪状态运行状态之间存在回路就绪状态通过进程调度算法获得CPU时间,转为运行态。而运行状态在CPU时间用完之后会转为就绪状态,等待下一次调度。阻塞状态是缺少资源从而由运行状态到阻塞状态转换而来,不包括CPU时间。特别是没有CPU时间会从运行状态转移到就绪状态

进程调度算法

  1. 批处理系统:先来先服务(FIFO)、短作业优先最短剩余时间按优先
  2. 交互式处理系统:时间片轮转队列优先级调度多级反馈机制
  3. 实时系统:硬实时(在规定时间内完成任务,不允许有误差,计算精度高的处理任务)、软实时(在规定时间内可以有延迟,订票)。

进程同步

  1. 临界资源:一次只允许一个进程使用。
  2. 同步和互斥:同步多个进程依次执行,互斥多个进程只有一个进程进入临界区。
  3. 信号量:down阻塞,P操作;up唤醒,V操作。

消费者-生产者问题、读写问题、哲学家进餐问题。手写代码(PV操作)

进程通信是手段,进程同步是目的。为了进程能够达到一定顺序执行,需要传输进程中信息。

进程通信方式

  1. 管道:半双工通信,用于父子进程。fd[0]读, fd[1]写。
  2. FIFO:有名管道,去除进程之间限制。
  3. 共享:设立一个全局变量。
  4. 消息队列:独立于读写进程之外,避免管道打开困难。阻塞。有选择的接受消息。
  5. 信号量:计数器,对数据共享访问。
  6. 套接字:独立与机器存在的信息访问方式。

死锁产生的必要条件:互斥占有和等待不抢占环路等待

死锁多种处理方法:鸵鸟策略(忽视);死锁检测和恢复(检测:有向环路检测,满足环路即死锁;每种类型多个资源检测:未被标记发生死锁。恢复:抢占,回滚,杀死进程)

死锁预防:破坏互斥、破坏占有和等待、破坏不抢占和破坏环路等待

死锁避免:安全状态:不发生死锁而且进程要求的进程请求最大。单银行家资源算法多银行家资源算法


内存管理

虚拟内存的目的就是让物理内存拥有更大的虚拟内存,使得程序获得更大的执行空间

为了更好的管理内存,操作系统将内存映射为地址空间,每个程序都有自己独立的地址空间,这些地址空间被划分为多个块,每个块称为一个页。这些页会被映射到物理内存中,但不需要连续的物理内存,也不需要所有的页都有独立的物理内存。当程序找不到对应的物理空间,硬件会分配一个对应的物理地址,重新执行指令。

分页地址映射:内存管理单元(MMU)保存着地址空间到物理空间的转换,其中页表包含了页(地址空间)和页框(物理地址)的映射。

在发生缺页中断时会调用“页面置换算法”。其包括:最佳、最近最久未使用、最近未使用、先进先出第二次机会算法、时钟。(绝大多是采用的是链表策略)

分段式:将多个页面划分为多个长短不一的控件,动态增长。

分页式:将地址空间划分为多个固定长度的区域,便于地址映射。

分页和分段的区别:

  • 透明性:分页透明,分段需要显示划分。
  • 空间地址维度:分页是一维的,分段式二维的。
  • 大小是否可以改变:分页不可以,分段可以。
  • 出现原因:分页式是地址空间的增大,分段式程序和数据可以被共享使用。

设备管理

磁盘包含了:扇面、磁道、扇区、刺头、制动手臂、主轴。

磁盘调度算法影响条件:旋转时间、寻道时间、数据传输时间。

策略:先来先服务、电梯算法、最短寻道时间。

链接:

编译系统将源程序编译为可执行程序过程如下图所示。

包含了预处理、编译、汇编、链接。

静态链接:封装好的。

一组可重定向的文件组合成为目标文件。

  1. 可执行文件:在内存中运行。
  2. 可重定向文件:与其他文件功能生成目标文件。
  3. 共享文件:运行时动态加载。

动态链接:运行时调用。更新时不需要重新链接,代码复用

以上就是对操作系统的总体功能总结,有问题可以和我联系[email protected]

你的支持,是我最大的动力。

猜你喜欢

转载自blog.csdn.net/u011687724/article/details/81750936