操作系统前两章内容
作者:互联网
操作系统
第一章:计算机系统概述
1.1.1 操作系统的基本概念
1.概念:
-
是系统最基本最核心的软件,属于系统软件
-
控制和管理 整个计算机的硬件和软件资源
-
合理的组织、调度计算机 的工作与资源的分配
-
为用户和其它软件提供方便的接口和环境
2.功能与目标:
(1)作为计算机系统资源的管理者
-
处理器(CPU)管理
在多道程序环境下,cpu的分配和运行都以进程(或线程)为基本单位,因此对cpu的管理可理解为对进程的管理。进程管理的主要功能包括
进程控制、进程同步、进程通信、死锁处理、处理机调度
等。 -
存储器管理
为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括
内存分配与回收、地址映射、内存保护与共享和内存扩充
等功能。 -
文件管理
计算机中所有的信息都是以文件的形式存在的,操作系统中负责文件的管理的部分称为文件系统,文件管理包括
文件存储空间的管理、目录管理及文件读写管理和保护
等 -
设备管理
设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要
包括缓存管理、设备分配、设备处理和虚拟设备
等功能。
(2)作为用户与计算机硬件系统之间的接口
-
为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口
-
操作系统提供的接口分为两类:
命令接口和程序接口
-
命令接口
:用户可以直接
使用的,利用这些操作命令来组织和控制作业的执行 -
程序接口
:用户通过程序间接
使用的,编程人员可以使用它们来请求操作系统服务
(3)作为扩充机器(虚拟机)
1.1.2 操作系统的特征
1.并发: 区分并发并行
2.共享: (1) 互斥共享 (2) 同时共享
3.虚拟
4.异步
多道程序环境允许多个程序并发
执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。
1.2.1 操作系统的发展和分类
1.手工操作阶段
主要缺点: 用户独占全机, 人机速度矛盾导致资源利用率低
2.批处理阶段
(1)单道批处理系统:
优: 解决人机速度矛盾
缺: 资源利用率依然很低
(2)多道批处理系统:
优: 多道程序并发执行,资源利用率高
缺: 不提供人机交互
3.分时操作阶段
优: 提供人机交互
缺: 不能优先处理紧急任务
4.实时操作阶段
(1)硬实时系统: 必须在绝对严格的规定时间内完成处理
(2)软实时系统: 能接受哦热热违反时间规定
优:能优先处理紧急任务
5.网络操作阶段
6.分布式操作系统
7.个人计算机操作系统
1.3.1 操作系统的运行机制与体系结构
1.运行机制
(1)两种指令:
-
特权指令:不允许用户直接使用的命令,如I/O指令,内存清零等指令
-
非特权指令:加减乘除的普通运算指令
(2)两种处理器状态:
-
核心态(管态):特权指令和非特权指令均可执行
-
用户态(目态):只能执行非特权指令
(3)两种程序
-
内核程序(管理程序):操作系统内核程序是系统管理者,特权指令和非特权指令都可执行,运行在核心态
-
应用程序(应用程序):为了保证系统能够安全运行,用户程序只能执行非特权指令,运行在用户态
2.操作系统内核(内核是计算机配置在底层的软件,是操作系统最基本核心的部分;实现操作系统内核功能的程序是内核程序)
(1)时钟管理:第一功能用于计时;向用户提供标准的系统时间;通过时钟中断管理,可以实现进程的切换
(2)中断处理:为了提高多道程序运行环境中汇总cpu的利用率;成为操作系统中各操作的基础
(3)原语(原子性:操作不可中断,一气呵成):
-
处于操作系统最底层,是最接近硬件的部分
-
程序运行时间短,调用频繁
【前三个为最基本功能】
(4)对系统资源进行管理的功能
-
进程管理
-
存储器管理
-
设备管理
3.操作系统的体系机构
(1)大内核
优:高性能
缺:内核代码庞大,结构混乱,难以维护
(2)微内核
优:内核功能少,结构清晰,方便维护
缺:需要频繁地在核心态和用户态之间切换,性能低
【用户态和核心态之间切换】:”用户态 向 核心态“ 通过中断实现,且是唯一途径
”核心态 向 用户态“ 通过执行一个特权指令,将程序状态字(PSW)的 标志位设置为”用户态“
1.3.2 中断和异常(内中断和外中断,中断处理过程)
1.中断的概念和作用
发生中断就意味着需要操作系统介入开展管理工作,cpu会立即进入核心态
作用:是cpu从用户进入核心态的唯一途径
2.中断的分类
(1)内中断(也称异常,例外,陷入):信号来源cpu内部,与当前执行的指令有关
分类1
-
自愿中断——指令中断——如系统调用使用的访管指令
-
强迫中断:分为 硬件故障 和 软件中断
分类2
-
陷阱,陷入(trap)——有意为之的异常,如系统调用
-
故障(fault)——由错误条件引起的,可能被故障处理程序修复,如缺页
-
终止(abort)——不可恢复的致命错误造成的结果,终止处理程序不在将控制返回给引发终止的应用程序,如整数除以0
(2)外中断:信号来源于cpu外部,与当前执行的指令无关
-
外设要求:如I/O操作完成发出的中断信号
-
人工干预:如用户强行终止一个进程
3.外中断的处理过程
-
关中断
-
保存断点
-
中断服务程序寻址
-
保存现场和屏蔽字
-
开中断
-
执行中断服务程序
-
关中断
-
恢复现场和屏蔽字
-
开中断->中断返回
1.3.3 系统调用(执行过程,访管指令,库函数与系统调用)
1.什么是系统调用,有何作用:
(1)是操作系统提供给应用程序使用的接口
(2)作用:应用程序通过系统调用来请求获得操作系统的服务
(3)系统调用会使处理器从用户态进入核心态
(4)分类
-
设备管理
-
文件管理
-
进程控制
-
进程通信
-
内存管理
2.系统调用和库函数的区别
(1)系统调用是操作系统向上层提供的接口
(2)有的库函数是对系统调用的进一步封装
(3)当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用
3.系统调用背后的过程
(1)传递系统调用参数
(2)执行陷入指令(系统调用发生在用户态,对系统调用的处理(被调用的程序)发生在核心态,执行陷入指令会产生内中断,使处理器从用户态进入核心态)
(3)执行系统调用相应的服务程序
(4)返回用户程序
第二章 进程管理
2.1进程与线程
2.1.1进程的定义,特征,组成,组织
1.定义:进程是进程实体(进程映像)地运行过程,是系统进行资源分配和调度的一个独立单位
2.组成:
(1)PCB(进程控制块):PCB是进程存在的唯一标志
-
进程描述信息:进程标识符PID,用户标识符UID
-
进程控制和管理信息:进程当前状态,进程优先级
-
资源分配清单:程序段指针,数据段指针,键盘,鼠标
-
处理机相关信息:各种寄存器
(2)程序段:存放要执行的程序代码
(3)数据段:存放程序运行过程中处理的各种数据
3.组织形式
(1)链接方式:按进程状态将PCB分为多个队列
(2)索引方式:按进程状态建立几张索引表,各表项指向一个PCB
4.特征
-
动态性:进程的最基本特征
-
并发性
-
独立性:进程是系统进行资源分配,调度的独立单位
-
异步性:各进程以不可预知的速度向前推进,可能导致运行结果的不确定性
-
结构性
2.1.2 操作系统之进程的状态(运行、就绪、阻塞、创建、终止)及转换(就绪->运行、运行->就绪、运行->阻塞、阻塞->就绪)
1.进程的状态
-
运行状态:CPU(有)其他所需资源(有)
-
就绪状态:CPU(无)其他所需资源(有)
-
阻塞状态:CPU(无)其他所需资源(无)
-
创建状态:操作系统为新进程分配资源,创建PCB
-
终止状态:操作系统回收进程的资源,撤销PCB
2.进程状态之间的转换
-
就绪->运行:进程被调度
-
运行->就绪:时间片到,或CPU被其他高优先级的进程抢占
-
运行->阻塞:等待系统资源分配,或等待某事件发生(主动行为)
-
阻塞->就绪:资源分配到位,等待的时间发生(被动行为)
-
创建态->就绪态:系统完成创建进程相关的工作
-
运行态->终止态:进程运行结束,或运行过程中遇到不可修复的错误
2.1.3 进程控制
1.基本概念:进程控制就是要实现进程状态的转换
进程控制用原语实现:
(1)原语用关/开中断来实现
(2)原语是一种特殊的程序
(3)原语的执行必须一气呵成,不可中断
2.相关原语
(1)进程的创建:
-
创建原语:
-
申请空白PCB(为新进程分配一个进程标识号PID)
-
为新进程分配所需资源
-
初始化PCB(标志信息,处理及状态信息,初始化处理机控制信息,设置进程的优先级)
-
将PCB插入就绪队列(前提是队列未满)
-
-
引起进程创建的事件:
-
用户登录
-
作业调度
-
提供服务
-
应用请求
-
(2)进程的终止
-
撤销原语:
-
从PCB集合中找到终止进程的PCB
-
若进程正在运行,立即剥夺CPU,将CPU分配给其他进程
-
终止其所有子进程
-
将该进程拥有的所有资源归还给父进程或操作系统
-
删除PCB
-
-
引起进程终止的事件:
-
正常结束
-
异常结束:如存储器越界,非法指令,运行超时,I/O故障等
-
外界干预:如操作员或操作系统干预
-
(3)进程的阻塞
-
引起进程阻塞的事件:
-
需要等待系统分配某种资源
-
需要等待相互合作的其他进程完成工作
-
(4)进程的唤醒
-
引起的事件:等待事件发生
(5)进程的切换
-
切换原语:
-
将运行环境信息存入PCB:运行环境如程序计数器和其它寄存器
-
PCB移入相应队列
-
选择另一个进程执行,并更新其PCB
-
根据PCB回复新进程所需的运行环境
-
-
引起的事件:
-
当前进程时间片到
-
有更高优先级的进程到达
-
当前进程主动阻塞
-
当前进程终止
-
【原语实现进程状态转换】需要:
-
更新PCB中的信息(如修改进程状态标志,将运行环境保存到PCB,从PCB恢复运行环境)
-
将PCB插入合适的队列
-
分配/回收资源
2.1.4 进程通信
进程通信就是指进程之间的信息交换
进程是分配资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立
1.共享存储
-
设置一个共享空间
-
要 互斥 的访问共享空间
-
两种方式
-
基于数据结构(低级)
-
基于存储区的共享(高级)
-
2.管道通信
-
设置一个特殊的共享文件(管道),其实就是一个缓冲区
-
一个管道只能实现半双工通信
-
实现双向同时通信要建立两个管道
-
各进程要互斥访问管道
-
写满时,不能再写;读空时,不能再读
-
没写满,不能读;没读空,不能写
3.消息传递
-
传递结构化的信息(消息头/消息体)
-
系统提供“发送/接受原语”
-
两种方式
-
直接通信方式:消息直接挂到接收方的消息队列里
-
间接(信箱)通信方式:消息先放到中间体(信箱)
-
2.1.5 操作系统之线程概念与多线程模型
1.线程概念:“轻量级进程”
为什么要引入线程:可增加并发度,减少并发带来的开销
2.引入线程带来的变化(和传统进程机制对比)
-
资源分配,处理机调度
-
并发性
-
(实现并发的)系统开销
3.线程的重要属性
-
线程是处理机调度的单位,进程是资源分配的单位
-
同一进程的各个线程共享进程拥有的资源
-
同一进程内的线程切换不会导致进程切换
-
每个线程都有一个线程ID,线程控制块(TCB)
-
线程几乎不拥有系统资源
4.线程的实现方式
-
用户级线程:从用户视角看的线程
-
内核级线程:从操作系用视角看的进程(内核级线程才是处理机分配的单位)
-
组合方式:上述两种方式的结合
5.多线程模型
-
多对一模型
-
优:进程管理开销小效率高
-
缺:一个线程阻塞会导致整个进程都被堵塞(并发度低)
-
-
一对一模型
-
优:各个线程可以分配到多核处理机并行执行,并发度高
-
缺:进程管理开销大
-
-
多对多模型:集两者之所长
2.2.1 处理机调度的概念及层次
1.基本概念:按照某种算法选择一个进程将处理机分配给它
2.三个层次:
-
高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程
-
中极调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内存
-
低级调度(进程调度):按照某种规则,从就绪队列中选择一个进程为其分配处理机
3.三层调度的联系,对比
-
高级调度:
-
外存->内存:面向作业
-
发生频率:最低
-
-
中极调度
-
外存->内存:面向进程
-
发生频率:中等
-
-
低级调度
-
内存->CPU
-
发生频率:最高
-
补充: (1)为减轻系统负载,提高资源利用率,暂时不执行的进程会被调到外存从而变成“挂起态”
(2)七状态模型:在五状态模型(2.1.2中的进程状态)的基础上加入了“就绪挂起”和“阻塞挂 起”两种状态
2.2.1 进程调度的时机(主动放弃与被动放弃)、切换与过程(广义与狭义)、方式(非剥夺与剥夺)
1.时机
(1)什么时候需要进程调度
-
主动放弃
-
进程正常终止
-
运行过程中发生异常
-
主动阻塞(如等待I/O)
-
-
被动放弃
-
分给进程的时间片用完
-
有更紧急的事情需要处理(如I/O中断)
-
有更高优先级的进程进入就绪队列
-
(2)什么时候不能进程调度
-
在处理中断的过程中
-
进程在 操作系统内核程序临界区(只说临界区是不对的) 中
-
原子操作过程中(原语)
2.切换与过程
(1)狭义的调度和切换的区别
(2)切换过程
-
对原来运行进程各种数据的保存
-
对新的进程各种数据的恢复
(3)重要结论:进程调度,切换是有代价的,并不是调度越频繁,并发度就越高
3.方式
(1)非剥夺调度方式(非抢占式):只能由当前运行的进程主动放弃CPU
(2)剥夺调度方式(抢占式):可由操作系统剥夺当前进程的CPU使用权
2.2.3 算法的评价指标(cpu利用率、系统吞吐量、周转时间、等待时间、响应时间)
1.CPU利用率(也有题目让计算某设备的利用率)
$$
利用率 = 忙率的时间 / 总时间
$$
2.系统吞吐量
$$
系统吞吐量 = 总共完成了多少作业 / 总共花了多长时间
$$
3.周转时间
-
$$
周转时间 = (作业完成时间-作业提交时间)/ 作业数
$$ -
$$
平均周转时间 = 各作业周转时间之和/ 作业数
$$ -
$$
带权周转时间 = 作业周转时间/ 作业实际运行时间
$$ -
$$
平均带权周转时间 = 各作业带权周转时间之和/ 作业数
$$
4.等待时间
-
进程/作业 等待被服务的时间之和
-
平均等待时间即各个 进程/作业 等待时间的平均值
5.响应时间 :从用户提交申请到首次产生响应所用的时间
标签:操作系统,中断,调度,两章,PCB,线程,进程,内容 来源: https://blog.csdn.net/weixin_60515793/article/details/121299818