==== 操作系统的运行机制是怎样的
几个基本概念
内核程序 《--》 应用程序
核心态 《--》 用户态
特权指令 《--》 非特权指令
操作系统的运行机制
时钟管理
计时:提供系统时间
时钟中断:比如进程切换
中断机制
提高多道程序环境下CPU利用率
外中断:中断信号来源于-》外部设备
内中断:中断信号来源于-》当前指令
三种情况:
陷阱/陷入:由应用程序主动引发
故障:由错误条件引发
终止:由致命错误引发
中断处理过程:
产生中断--》执行对应中断处理程序--》继续执行程序
产生中断--》1关中断(此时CPU不响应高级中断请求)--》保存断点--》引出中断服务程序--》保存现场和屏蔽字--》开中断--》执行中断服务程序--关中断--》恢复现场和屏蔽字--》开中断
原语 --是一个程序段 --运行在内核空间
由若干条指令组成
用来完成某个特点功能
执行过程不会被中断 --具有“原子性”
系统数据结构 --一般只涉及到对数据结构的操作,不涉及硬件
进程管理:作业控制块、进程控制块
存储器管理:内存分配与回收
设备管理:缓冲区、设备控制块
系统调用
是操作系统实现,给应用程序调用
是一套接口的集合
应用程序访问内核服务的方式
用户态切换到核心态都是通过系统调用来实现的
==== 操作系统的结构
模块独立性标准:高内聚、低耦合
==== 进程管理 ==== 重要
什么是进程:
进程(proces) 是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行“资源分配和调度”的一个独立单位。
几个要点:
进程是程序的一次执行
进程是一个程序及其数据在处理机上顺序执行时所发生的活动
进程是程序在一个数据集合上运行的过程
进程是系统进行资源分配和调度的一个独立单位(或者说基本单位)
进程的结构:
控制块:PCB(process control block)-- 进程唯一标识符
数据段: 存放原始数据、中间数据
程序段: 存放在文本区域,可以被多个进程共享(同一个应用程序的多个进程之间)
进程的特征:
动态性:由创建而生,由撤销而亡
并发性:有个进程同时进行
独立性:独立资源分配
异步性:相互独立,互不干扰
什么是线程:
Thread,进程的轻型实体,也叫"轻量级进程",是一系列活动按事先设定好的顺序一次执行的过程,是一系列指令的集合
是一条执行路径,不能单独存在,必须包含在进程中
线程是OS中运算调度的最小单位
为什么引入线程:
提高OS的并发性
进程的属性:
轻型实体
独立调度和分派的基本单位
可并发执行
共享进程资源
线程的实现方式:
用户级线程 --用户空间
内核级线程 --内核空间
========
进程的状态:
就绪 --可运行但是未运行的状态---》进程调度
执行 -- 》 I/O请求 --》
阻塞--- I/O完成 --》就绪
创建
终止
进程控制:
即OS对进程实现有效的管理,包括创建新进程、撤销已有进程、挂起、阻塞和唤醒、进程切换等多种操作。OS通过原语操作实现进程控制
原语的概念:
由若条指令组成,完成特定的功能,是一种原子操作--不可被中断的操作
原语的特点:
原子操作,要么全做,要么全不做,执行过程不会被中断,在管态/系统态/内核态下执行,常驻内存
是内存三大支撑功能(中断处理/时钟管理/原语操作)之一
处理机调度:
根据一定的算法和原则将处理机资源进行重新分配的过程
前提: 作业/进程数远远大于处理机数
目的:提高资源利用率,减少处理机空闲时间
调度程序:一方面要满足特定系统用户的需求(快速响应),另一方面要考虑系统整体效率(系统平均周转时间)和调度算法本身的开销
调度的层次:
高级调度/作业调度
把后备作业调入内存
只调入一次,调出一次
中级调度/内存调度
将进程调至外村,条件合适再调入内存
在内、外存对换区进行进程对换
低级调度/进程调度
从就绪队列选取进程分配给处理机
最基本的调度,频率非常搞(相当于一个时间片完成)
调度方式:
剥夺式/抢占式调度:
立即暂停当前进程
分配处理机给另一个进程
原则:优先权/短进程优先/时间片原则
非剥夺/非抢占式调度:
若有进程请求执行
等待直到当前进程完成或阻塞
缺点:适用于批处理系统,不适合分时/实时系统
进程调度:调度算法指标
CPU利用率 --最重要的
系统吞吐量
周转时间
等待时间
响应时间