操作系统笔记


操作系统笔记

2.使用操作系统

进程包括:

  • 可执行的目标程序
  • 程序执行的数据
  • 程序请求的资源
  • 进程的执行状况

进程的操作:

  • FORK:创建子进程
  • QUIT:终止进程
  • JOIN:合并多个进程为一个单一的进程

UNIX中创建进程:

  • UNIX中的进程,有代码段、数据段和堆栈段定义。数据段包含静态的变量,堆栈段保存着运行栈,用于存储临时的变量。
  • 进程有唯一的进程标识符PID,本质上是一个指针。
  • UNIX中创建一个进程,是fork系统调用。子进程创建后,父子进程就在各自分离的地址空间执行。
  • 提供一个wait调用,使父进程可以检查子进程什么时候结束。

线程:

3.操作系统的组织结构

讲了一些操作系统应该有的特性和功能

4.计算机组织结构

中断:

  • 当设备完成I/O操作后,使用设备终端来通知处理机。
  • 指处理器接收到来自硬件或软件的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。
  • 引入终端就是为了避免CPU要不停地询问I/O设备是否已经完成。

5.设备管理

设备管理方法:

  • 使用轮询的直接I/O: 轮流检查设备的busy-done标志位。
  • 中断驱动的I/O:当I/O操作结束后,由设备管理器,自动通知设备驱动程序。
  • 存储映射I/O:通过软件与设备控制器寄存器读写信息来进行I/O设备管理。
  • 直接内存访问DMA:初始化I/O后,能够直接从内存地址读取信息,或者写到内存,而无需CPU干涉。

缓冲:

  • 输入和输出缓冲

设备驱动程序

  • 应用编程接口提供一组功能函数,应用程序能够调用它们进行设备管理。

一些设备管理方法:

  • 串行通信
  • 顺序访问的存储设备
  • 随机存储设备

6.进程管理

进程的构成:

  • 定义程序行为的程序
  • 数据
  • 请求的一些资源
  • 执行期间,保存运行轨迹的进程控制块

进程地址空间:

  • 映射表:包括程序、变量等在地址空间中的位置
  • 生成地址空间:1.编译成一组可重定位的目标模块。2.链接程序将可重定位目标模块和库模块结合,形成一个绝对程序(absolute program)
  • 载入程序:在程序执行之前,必须分配内存给进程。

进程控制块,保存进程全部状态的踪迹:

  • 进程上次被挂起时,寄存器的内容
  • 处理机状态:被阻塞or就绪
  • 地址空间的映射情况
  • 存储器状态
  • 栈指针
  • 已经分配的资源
  • 需要的资源

进程状态

  • 就绪:等待CPU调度,等待分配处理机运行
  • 运行:运行中,可以请求I/O进入阻塞状态,或者结束执行释放资源。
  • 阻塞:处于阻塞状态的进程只有当分配了请求的资源才会回到就绪状态。

7.调度

  • 即CPU资源管理。如何把CPU分配给进程,各个进程又是以什么次序使用CPU。
  • 排队器:将就绪进程的控制块指针加入要求CPU的进程队列中。
  • 上下文切换器:将被移出的进程的处理机寄存器内容保存到该进程控制块中。
  • 分派器:从就绪队列中选择一个进程。

非剥夺式策略:

  • 先来先服务
  • 最短作业优先
  • 使用优先级

剥夺式策略:

  • 轮转:对于所有进程,平均分配处理时间
  • 多级队列:先判断优先级,相同优先级情况下,再采用别的策略。

8.同步基本原理

临界区的变量的读写,加锁是个办法,但是有可能会出现死锁。

信号量:

  • 只允许一个进程进入相应的临界区(互斥)。
  • 一旦一个进程试图进入临界区,如果没有其他进程在临界区,就应立即进入临界区。
  • V(s): [s=s+1]
  • P(s): [while(s==0){waite}; s=s-1]

9.高级同步技术

  • AND同步
  • 事件

管程:是抽象数据类型,任一时刻只为可能执行该过程的一个进程使用。

进程间通信IPC:

  • 管程允许进程间通过使用一个管程内的共享存储器来共享消息。
  • IPC是利用消息,明确把信息从一个地址空间拷贝到另一个进程的地址空间。
  • 使用send和recieve操作

10.死锁

死锁避免

  • 银行家算法:

存储管理

将地址空间映射到内存。向存储器管理器请求主存空间,然后把程序放入相应的内存中。

分配:

  • 固定分区存储分配:
  • 可变分区存储分配:

存储管理器策略

  • 交换技术:
  • 虚拟内存:

12.虚拟内存

  • 页式:有不同的替换策略:随机、最近最少使用、最小使用频率、先进先出。
  • 段式:<segmentNumber, offset> 标识存储器逻辑块和偏移量

13.文件管理

  • 字节流文件:
  • 结构化文件: