转载请指明出处
马上你就会看到一串长长的目录,不要害怕,其实内容并不多。
计算机系统概述
一、基本的指令周期
取指阶段–执行阶段(–中断阶段)
二、中断
中断是一种机制,即允许其它模块(I/O、存储器)在处理器正常处理过程中打断其工作。
1、中断的分类
程序中断、时钟中断、I/O中断、硬件失效中断
2、中断处理过程
3、多个中断的处理
- 顺序中断处理(禁止中断、无优先级)
- 嵌套中断处理(有优先级)
三、存储器的层次结构
- 板上存储器(寄存器–高速缓存–内存)
- 板外存储器(磁盘)
- 离线存储器(磁带)
特点:
四、高速缓存
为了解决处理器和内存速度不匹配的问题,利用局部性原理,在处理器和内存之间提供一个容量小且速度快的存储器,称为高速缓存(Cache)。用于在内存和处理器寄存器之间分段移动数据,提高数据访问的性能。(要会计算平均存取时间)
五、局部性原理
在执行程序期间,处理器的指令访存和数据访存呈现“簇”状(一组数据集合)。
操作系统概述
一、概述
操作系统是控制应用程序执行的程序,是应用程序和计算机硬件间的接口。
操作系统的三个目标:方便、有效、扩展能力
二、多道程序设计
多道程序设计是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。(要掌握多个作业并发执行时资源利用率的计算)
目的:为了让处理器和I/O设备(包括存储设备)同时保持忙状态,以实现最大效率。
三、操作系统的发展历程
- 串行处理(没有操作系统,主要问题:调度和准备时间)
- 简单批处理系统(中心思想:监控程序)
- 多道批处理系统(采用多道程序设计,提高资源(CPU)的利用率)
- 分时系统(采用多道程序设计,减小系统响应时间)
进程描述和控制
一、进程的定义和组成
1、定义
- 一个正在执行的程序
- 一个能在计算机上执行的程序实例
- 能分配给处理器并由处理器执行的实体
- 由一组执行的指令、一个当前状态和一组相关的系统资源表征的活动单元
2、组成
- 程序代码
- 相关数据
- 进程控制块(PCB)
执行上下文(进程状态):上下文包括操作系统管理进程及处理器正确执行进程所需的所有信息。
它包括各种处理器(CPU)寄存器的内容、操作系统使用的信息
二、五状态模型
新建态、就绪态、运行态、阻塞/等待态、退出态
运行–>就绪:
- 正在运行的程序已到达“允许不中断执行” 的最大时间段
- 被高优先级的进程所抢占
- 进程自愿释放对处理器的控制
运行–>阻塞:进程必须等待某些事件时(例如:I/O操作)
阻塞–>就绪:所等待的事件发生时
三、进程挂起
由于处理器远快于I/O,可能会出现内存中所有的进程都处于阻塞状态。
解决这个问题的方法之一就是交换,即把内存中某个进程的一部分或全部移到磁盘中。因此在五状态模型的基础上增多了两个挂起态:阻塞/挂起态、就绪/挂起态。
挂起进程的特点:
- 进程不能立即执行
- 该进程可能在也可能不在等待一个事件。若进程正在等待一个事件,阻塞条件不依赖于挂起条件,阻塞事件发生不会使进程立即被执行
- 为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统
- 除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移
四、操作系统的控制结构
- 内存表:用于跟踪内(实)存和外(虚)存
- I/O表:管理计算机系统中的I/O设备和通道
- 文件表:提供文件的相关信息(非全部信息)
- 进程表:管理进程
内存、I/O和文件是代表进程而被管理的,因此进程表中必须有对这些资源的直接或间接引用。
五、进程的控制结构
1、进程映像
程序、数据、栈和属性(进程控制块)的集合称为进程映像
项目 | 说明 |
---|---|
用户数据 | 用户空间中的可修改部分,包括程序数据、用户栈区域和可修改的程序 |
用户程序 | 将被执行的程序 |
系统栈 | 每个进程有一个或多个系统栈,用于保存参数、过程调用地址和系统调用地址 |
进程控制块 | 操作系统控制进程所需要的数据 |
2、进程控制块(PCB)
信息分为三类:
- 进程标识信息
进程ID、父进程ID、用户ID
- 进程状态信息
用户可见寄存器、控制和状态寄存器(程序状态字PSW)、栈指针
- 进程控制信息
调度和状态信息、数据结构、进程通信、进程特权、存储管理、资源的所有权和使用情况
六、进程控制
1、两种模式
- 用户模式(用户态):运行用户程序
- 系统模式、控制模式或内核模式(系统态、控制态或内核态):执行特权指令
处理器如何获知和改变所处模式?
程序状态字中有表示执行模式的位,并且该位应某些事件要求而改变
2、进程创建
- 分配唯一进程标识符
- 分配空间
- 初始化进程控制块
- 设置正确的连接
- 创建或扩充其它数据结构
当操作系统为另一个进程的显式请求创建一个进程时,这个动作称为进程派生。
(进程间的派生:父进程派生子进程)
3、进程切换和模式切换
(1)、进程切换
进程切换是让处于运行态的进程中断运行,让出处理器,让操作系统指定的新进程运行。被中断进程的上下文环境需要保存。
切换时机(但中断不一定会发生进程切换):
- 系统中断
- 中断(与外部事件相关)
- 时钟中断
- I/O中断
- 内存失效
- 陷阱(进程产生的错误或异常条件相关)
- 中断(与外部事件相关)
- 系统调用
(2)、模式切换
出现中断时,处理器会做如下工作:
- 把程序计数器置成中断处理程序的开始地址
- 从用户态切换到内核态,以便中断处理代码包含特权指令
此时,将已中断进程的上下文保存到已中断程序的进程控制块中,保存的内容包括:
- 所有中断处理可能改变的信息
- 恢复被中断程序时所需要的信息
模式切换可以不改变正处于运行态的进程状态,保存和恢复上下文环境开销小
进程切换涉及进程状态的变化,开销较大。
4、额外知识点
UNIX中,父进程通过系统调用fork()创建子进程(在父进程的内核模式下完成),之后可能进行下面三种操作之一:
- 在父进程中继续执行。控制权返回到用户态下父进程调用fork的位置。
- 处理器控制权交给子进程。子进程开始执行代码,执行点与父进程相同,即在fork调用的返回处。
- 控制转交给另一个进程。父进程和子进程都置于就绪态。
从fork中返回时