操作系统定义:是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户使用的程序集合
操作系统的目标:
OS的作用
OS作为用户与计算机硬件系统之间的接口
最底层调用的是System Call,OS接口就是一些系统调用函数,如fork、open等
OS作为计算机系统资源的管理者(软硬件资源):处理机管理、存储器管理、I/O设备管理、文件管理。多用户系统选要多路复用
OS用作扩充机器
无操作系统:人工操作方式、脱机输入输出方式
单道批处理系统
多道批处理系统:注意计算,执行与中断画时间图(A中断>B执行也要等A中断完再C执行)
在多道程序环境下允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。(你走我停)
分时操作系统:及时接收、及时处理
实时操作系统:响应及时、可靠性高
现代OS基本特征
并发和共享是操作系统的两个最基本的特征,他们又是互为存在的条件
操作系统主要任务、五个方面功能(CPU、存储器、设备、文件管理、方便用户使用的用户接口)
无结构OS
模块化OS结构(模块-接口):块与块的相互关系、优缺点
分层式OS结构
微内核OS结构
课后作业:操作系统-第1章习题解析 - 梦如三 - 博客园 (cnblogs.com)
执行程序是计算机的基本任务,程序执行的关键在PC的调用
进程→进程管理块PCB
程序执行方式:顺序——单道批处理、并发——多道批处理
前驱图DAG:有向无循环图,无循环!!!
顺序执行:输入→计算→打印。特征(顺序、封闭、可再现)
并发执行:Ii+1 和 Ci 重叠→并发执行
进程定义
特征:动态性(程序静态进程动态)、并发性、独立性、异步性
三种基本状态:
就绪状态:当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU便可以立 即执行。静止就绪在外存,就绪在内存。静止的要先进内存才能激活
执行状态:进程已经获得CPU,其程序正在执行
阻塞状态:正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,把这种暂停状态称为阻塞状态,有时也称为等待状态
进程状态是唯一的
五种状态:
挂起/静止:静止就绪、静止阻塞;挂起原语、激活原语;挂起会从内存转换到外存,让出CPU
挂起原语Suspend(),激活原语Active()
谁挂起的谁来唤醒
挂起的原因、特征
书P39页图背过
进程映像:一个进程的程序、数据、栈、属性
进程控制块PCB:进程控制块的作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位-进程
进程控制:OS内一组原语来实现
原语:操作系统内核或微核提供核外调用的过程或函数
内核:第一层扩充软件
CPU工作模式:特权模式、用户模式
处理器两种执行状态:系统态(进程控制功能工作在系统态)、用户态
进程:系统进程、用户进程
内核功能:支撑(中断、时钟、原语)、资源管理(进程、存储器、设备)
调用进程的创建原语步骤:
用户登录、作业调度、提供服务、应用请求→进程创建→撤销
进程终止:正常(return、exit)、异常(about、信号Ctrl+C)、外界干预
进程阻塞与唤醒:block()、wakeup()
进程挂起与激活
抢占策略
如果单处理器系统中有N个进程,运行的进程最多几个,最少几个?就绪进程最多几个,最少几个?
答:运行状态最多1个,最少0个;就绪状态最多N-1个,最少0个。有就绪说明已经有运行,换成阻塞就最多N个了
有交互的(执行要依赖其他进程状况)并发会破坏封闭性、可再现性
区分并发、并行,一个核一个并行
并发进程之间的关系:
互斥:多个进程不能使用同一个资源,某个进程使用该资源时其它进程必须等待
同步:多个进程的调用存在时序关系,某些进程的执行必须先于另一些进程
通信:多个进程间传递消息
互斥下,需要对共享变量做限制。临界资源/临界区,进入临界区加锁
临界资源:进程竞争资源首先必须解决“互斥问题”,某些资源必须互斥使用,这类资源就是临界资源。访问临界资源的那段代码称为临界区
实现“上锁”:信号量机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsyWJyhn-1681782649662)(操作系统.assets/image-20230412222818668.png)]
上锁一定记得释放
硬件同步机制
管程
生产者/消费者问题
哲学家问题
读者/写者问题
通信机制
作业JOB:是用户在一次算题过程中或一次事务处理中,要求计算机系统所做的工作的集合
作业步:计算机系统完成一个作业所需的一系列有序的相对独立的工作步骤
作业控制块JCB
高级调度
批处理系统需要有作业调度,分时和实时系统无需此调度
高级调度对象——作业,低级调度对象——进程
低级/进程/短程调度
中级调度
进程调度在内存中,不会出来
仅有进程调度:分时系统中通常只有进程调度
有高级和低级调度:批处理系统需要进程调度和作业调度。处理机分给就绪队列首进程。设置多个阻塞队列,高优先权优先调度
三级调度都有:对系统、用户的准则(注意响应时间是提交请求到系统响应的时间,不是执行完的时间)
调度时机
进程切换:基本步骤
先来先服务调度算法FCFS
短作业优先调度算法SPF
计算的这些时间都是预估的
最短剩余时间调度算法SRT
优先权调度算法PSA
抢占、非抢占
优先权确定
高响应比优先调度算法HRRN(动态优先权机制)
基于时间片的轮转调度
混合多种调度算法
基于公平原则的调度算法
基本条件
最早截止时间优先EDF
最低松弛度优先LLF
优先级倒置
产生死锁的原因:竞争资源、进程间推进顺序不当
产生死锁的必要条件
处理死锁的基本方法:
摒弃“请求和保持”条件:
摒弃“不剥夺”条件
摒弃“环路等待”条件
银行家算法
数据结构
算法
请求向量Request,如果Request[j]≤Need[i,j]则出错,反之继续判断Requesti[j]≤Available[j],不满足则等待,满足则分配
Available[j]=Available[j]-Requesti[j]
Allocation[i,j]=Allocation[i,j]+Requesti[j]
Need[i,j]=Need[i,j]-Requesti[j]
检测
解除
最小代价原则