复习笔记--操作系统上
第一章 操作系统概论
-
一个典型的计算机系统构成:运算器、存储器、控制器、输入和输出
-
操作系统的地位:操作系统处于计算机硬件和应用软件和用户之间,是“中介机构”,如下:
-
操作系统的定义:计算机系统中的一个系统软件,它是这样一些程序模块的集合:它们能有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能及相应接口,使用户能够灵活、方便和有效地使用计算机,使整个计算机系统能高效地运行。
-
操作系统四大功能:
- 进程管理:描述多道程序的并行执行,实质是对处理器的管理,如处理器分配调度策略、进行分配、进行回收再利用等
- 存储管理:管理内存和外存资源,解决各种问题:为进程分配、释放内存空间,进程程序和数据隔离,虚拟存储器
- 文件管理:解决大容量、“永久”存储器,即外存的管理问题
- IO设备管理
- 除此之外,操作系统还要有中断处理、错误处理等功能,可以为我们提供各种服务的相应接口
-
操作系统的发展:手工操作,简单批处理系统,多道程序批处理系统,分时系统,UNIX,DOS、Windows,Linux,云计算操作系统
- 手工操作:手工输入机器码,出现卡片读入装置,出现汇编语言及其编译程序,外设控制程序,独占所有资源,效率极低,为脱机输入/输出工作方式
- 简单批处理系统:晶体管出现,作业卡片以脱机方式读入磁带,为“单道批处理”
- 多道程序批处理系统:标志现实意义上的OS出现,同时装入多个程序带主存,典型为FMS何IBMSYS
- 分时系统,标志OS步入实用化阶段,CPU在程序间切换设定了固定时间,CTSS,IBM709
- ...
-
实时操作系统:VxWorks
-
现代OS的特性:并发性,共享性,虚拟性,异步性
-
由用户模式进入特权模式:
- 发生系统调用
- 产生异常
- 外设中断
第二章 操作系统结构
-
主要包括三方面:
- 操作系统所提供的服务
- 操作系统为用户和程序员提供的接口
- 操作系统组成部分及其相互关系
-
操作系统服务一般包括:
- 用户界面
- 程序执行
- I/O操作
- 文件系统操作
- 通信
- 错误检测
- 资源分配
- 统计
- 保护和安全
-
命令解释程序是OS的特殊程序,比如DOS的COMMAND.COM,UNIX、LINUX的Shell
-
区分内核态和用户态:一种处理器“硬件设计”,CS:IP是当前指令,所以用CS最低2位来表示状态,0是内核态,3是用户态
-
系统调用的过程
-
系统调用号:用寄存器eax内容指定
-
最多直接传递3个参数:用寄存器ebx,ecx,edx
-
有三种传递参数的方式:
- 直接用寄存器,最多3个
- 指定内存块,任意多个参数,可以用ebx、ecx、edx任意两个指定地址和个数
- 用系统栈,任意多个参数,寄存器可用可不用
-
系统调用类型:进程控制,文件管理,设备管理,信息维护,通信
-
操作系统结构
- 简单结构:单一整体,不注重模块的划分和接口和功能层次,DOS
- 模块化:面向对象技术生成模块化的内核,UNIX,Linux,Mac
- 分层结构:整个操作系统分成若干层,至底向上层层封装
- 微内核结构:将最基本的功能作为内核存在,主要包括最小的进程管理、内存管理和通信功能,其他功能作为系统程序或用户程序出现
-
虚拟机是一种操作系统的特结构。首先,对硬件进行第一层抽象封装,之后以该层为基础,再封装第二层虚拟硬件抽象,然后实现多个操作系统
第三章 进程
-
并发过程程序在切换之前需要保持执行现场,后切换
-
进程的概念:
- 一个正在执行的程序
- 计算机中正在执行程序的一个实例
- 可以分配给处理器并由处理器执行的一个实体
- 由一个顺序执行的代码段、一个当前状态和一组相关系统资源所刻画的活动单元
-
进程的5个基本特征:
- 动态性:动态特性表现在它因创建而产生,由调度而执行,因得不到资源而暂停执行,最后因完成或撤销而消亡
- 并发性:多个程序并发执行
- 独立性:进程是一个能独立运行的基本单位,也是相同进行资源分配和调度的基本单位
- 异步性:进程以各自独立的、不可预知的速度向前推进
- 交互性:和其他进程发生直接或间接的相互作用
-
三进程状态图
-
五进程状态图
-
七进程状态图
-
进程的数据结构
对单个进程,操作系统建立“进程映像”进行描述和表达,包括3部分:- 一段可执行的程序(代码)
- 程序所需的相关数据(变量、栈、堆、缓冲区等)
- 程序执行的上下文环境(PCB,进程控制块)
-
fork的过程:创建进程控制块,分配内存,文件继承i,子进程往往要调用一种execve函数以执行另一个程序,当进程调用其时,该进程的用户空间代码和数据完全被新程序替换,从新程序的程序入口地址开始执行。调用execve并不创建新进程
-
对所有进程的管理,操作系统建立特定数据结构:
- 进程索引表 -- 进程目录
- 进程映像存储区
- 进程链表队列
-
进程操作的职责是对进程生命周期中的状态变迁实施有效的管理
-
进程操作主要功能:
- 进程的创建
- 先向系统申请一个空闲PCB结构
- 再根据父进程所提供的参数将子进程的PCB初始化
- 将此PCB插入就绪队列(或就绪挂起/创建队列)
- 最后返回一个进程的标识号
- 进程的撤销
- 只撤销一个具有指定标识符的进程或者撤销指定进程及其子孙进程
- 步骤:
- 从PCB集合中找到被撤销进程的PCB
- 若为运行状态,则立即停止,并且设置调度标志
- 对第二种方式,还要撤销其子孙
- 归还资源回系统或者父进程
- 撤销它的PCB
- 进程的阻塞(执行到阻塞)
- 中断处理和保持该进程的CPU现场
- 将进程插入到等待该事件的队列中
- 从就绪队列中选择一个投入运行
- 一般是进程直接调用阻塞原语的
- 进程的唤醒(阻塞到就绪)
一般是另一个发现者进程调用唤醒原语
- 进程的创建
-
进程操作功能是操作系统的内核来完成的,通过执行各种原语(由若干条机器指令构成,用于完成某一特定功能的一段程序,执行过程中不可分割,具有原子性)
-
进程队列是操作系统将具有相同属性或者特征的进程保存到一起的一种数据结构,一般是链表,元素是PCB
-
进程队列的分类
- 按状态:就绪、阻塞、运行、创建、终止
- 按等待设备:磁盘、键盘
- 按等待事件:鼠标双击、鼠标右键
- 按进程等待的信号量、消息队列等
-
调度程序分类:
- 长期调度程序:从磁盘缓冲池中选择进程
- 中期调度程序:内外存“交换”进程
- 短期调度程序:选择就绪态的进程并为其分配CPU
-
进程调度的四种情况:
- 因等待某些事件而让出CPU
- 规定的时间片到了
- 出现了优先级更高的进程
- 进程的任务完成了,自动终止退出
-
进程调度步骤:
- 进程队列迁移
- 下一个进程选取
- 进程切换(先保存当前进程的状态信息并且恢复另一个进程的状态信息,为PCB交换,此消耗CPU时间)
-
进程协作的核心就是共享消息,即进程间通信,通信有2中方式,共享内存和消息传递
- 共享内存
- 消息传递
- 共享内存
-
Linux进程间的通信方法:管道,消息队列,信号量,套接口
作者: vachester
出处:http://www.cnblogs.com/vachester/
邮箱:xcchester@gmail.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。