以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~
一、操作系统概述
1、操作系统的概念:
操纵系统是控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,提供给用户和其他软件方便的接口和环境最基本的软件系统(操作系统是属于软件系统!)
2、操作系统的资源管理技术:
OS的主要任务是对资源进行管理,有序控制软硬件资源的分配,有序控制软硬件资源的分配、回收、使资源共享。
其三种管理技术:
①资源复用:让众多进程共享物理资源称为资源复用,解决物理资源不足的问题。包括空分,”空间“上分割更小单位供多个进程使用,如内存;还包括时分,在”时间“上分割更小单位供多个进程使用,例如处理器。
②资源虚拟:把一个物理资源转变成多个逻辑上的对应物(虚拟打印机),把多个物理资源变成单个逻辑上的对应物(如虚拟内存=内存+外存)
③资源抽象:通过软件来屏蔽资源的实现细节,简化对硬件的操作、控制和使用,其包括:进程抽象、虚存抽象、文件抽象
其中,虚拟机是在裸机的基础上配置操作系统。虚拟机的每种资源都是物理资源通过复用、虚拟、抽象得到的产物。
3、操作系统的类型:
①批处理操作系统:用户脱机工作,批处理作业。
特征:用户脱机工作、成批处理作业、多道程序运行、作业周转时间长
②分时操作系统:允许一台主机上同时联接多台终端,多个用户可以通过各自的终端同时交互使用计算机。
特征:同时性、独立性、交互性
③实时操作系统:对特定输入作出及时响应,并在规定时间内完成对该事件的处理。
特征:响应及时、可靠性高
④分布式操作系统:系统中若干个计算机相互协作完成同一任务,以获得极高的运算能力和数据共享。
4、操作系统的功能:
①处理机管理②存储管理③设备管理④文件管理⑤用户接口
5、操作系统的特征:
①并发性②共享性③异步性④虚拟性
6、多道程序设计:
是在内存中同时存放两个或两个以上相互独立的程序,使他们在计算机系统中同处于开始到结束之间的状态,相互穿插的运行。
特征:①多道②宏观上并行③微观上串行,一个程序轮流占用cpu
目的:提高cpu的利用率,充分发挥计算机硬件的并行性。
二、进程
为什么要引入进程?
早期的顺序执行程序实质是单道程序系统,缺点是效率低下。而后出现的多道程序设计,提高了系统的效率,尤其是资源利用率。同时也带来了新特征:资源共享性、独立性、制约性、程序执行的间断性 、结果不可再现、与时间有关的错误。
程序的并发性执行使得程序的执行情况不可预见,其结果不再唯一,称为动态的过程 。而程序是一个静态的概念,不再能切实反映程序执行的各种特征(独立性、并发性、动态性),因此操作系统为正在运行的程序建立一个实体的管理——进程。
1、进程的概念:
进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。是资源分配和保护的基本单位。
其中进程和程序之间是有区别的:
①进程是动态的实体、程序的一次运行,是有生命周期的,不可长期保存。
②程序是静态实体,是指令的集合,没有生命周期,可以长期保存。
③进程和程序不是一一对应的,程序和进程也不是一一对应的。
2、进程的性质:
动态性、并发性、独立性、制约性、异步性、结构性。
3、进程的组成:
①进程控制块PCB,是进程存在的唯一标识,跟进程是一一对应的。提供了进程的各种信息,以便于操作系统控制和管理。其信息如下:
类型 | 内容 | 作用 |
标识信息 | 1)进程(组)标识 2)用户进程名 3)用户组名 | 唯一地标识一个进程 |
现场信息 | 1)用户可见寄存器内容 2)控制/状态寄存器内容 3)用户/核心栈指针 4)程序状态字 | 记录处理机现场信息,以备恢复之用 |
控制信息 | 1)进程状态 2)调度信息 3)队列指针 4)位置信息 5)资源占用信息 | 用于进程的管理和调度 |
②程序段:描述了进程要完成的功能,是进程执行时不可以修改的部分。
③数据段:进程执行的时候用到的数据。
④工作区:参数传递、系统调用时使用的动态区域(堆栈区)
4、进程的状态:
然而在操作系统实现层面,进程的创建和撤销都不是一蹴而就的,因此还新增了 新建态和终止态
①新建态对于进程被创建的时候所处的状态,因此进程尚未进入就绪列表。其进程创建包括两个步骤:一是为新进程分配所需要的资源以及建立必要的管理信息,二是设置该进程为就绪态,并等待调度执行。
②终止态是指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止或被操作系统以及有终止权的进程所终止时所处的状态。终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统消失。包括两个步骤:一等待操作系统或相关进程进行后续处理,二是回收占用的资源并被系统删除。
进程转换以及原因:
就绪-运行:进程被调度程序选中占有cpu
运行-阻塞:进程让出cpu,等待系统分配资源或者某些事件的发生
阻塞-就绪:等待队列的进程,当其等待事件已经发生,或者等待的资源可用的时候,进程将进入就绪队列竞争cpu
运行-就绪:进程分配的时间片已用完,或者在中断机制下有更高的优先级的进程进入系统,这时进程 进入就绪队列。
5、进程上下文:
操作系统中,进程物理实体和支持进程运行的环境合称为进程上下文。
当系统调度新进程占有处理器时,新老进程随之发生上下文切换,上下文切换发生在内核态。进程的运行被认为是在上下文中执行。
进程上下文由以下三部分组成:
①用户级上下文:程序块 、数据块、用户栈等
②系统级上下文:pcb、内存管理信息、核心站
③寄存器上下文:处理器现场信息
6、进程控制:
进程控制是进程管理的重要组成部分,需要对操作系统中内核数据结构进行操作。其主要任务就是实现进程状态转换,这些由操作系统内核通过执行各种原语完成。
什么是原语?
若干条机器指令构成的可完成特定功能程序段,是一个”原子操作“过程,要么全部完成 ,要么全部失败。其主要做三类事:①更新pcb信息②将pcb插入合适队列③分配/回收资源
进程控制包括:
①进程的创建②进程的撤销③进程的阻塞和唤醒④进程的挂起和激活
三、线程
为什么进入线程?
进程是资源的拥有者,在进程创建、撤销、切换过程中,系统必须为之付出较大的时空开销。因此,进程的数目不宜过多,进程的切换频率也不易过高,限制了进程的并发度。
解决思路:把进程的两项功能”独立分配资源“与”被调度分派执行“分离开。
线程是基本的cpu执行单位,也是程序执行流的最小单位,引入线程减少程序并非时所付出的时空开销,使得并发粒度更细,并非性更好。
1、多线程中线程程的概念:
线程是操作系统中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。
2、线程的优势:
①减少管理开销②快速线程切换③通信效率高④并发性提高
3、进程和线程之间的关系:
①线程是进程的一个组成部分,线程由进程创建,一个进程中至少存在一个线程,线程还可以创建其他线程。
②进程依然是资源分配和保护的基本单位,线程只能使用其所在的进程资源。
③线程是进程能够独立执行的实体,是处理器调度和分配的基本单位。
四、处理器调度
1、处理器调度的层次:
①高级调度 (外存->内存,面向作业)
②中级调度(外存->内存,面向进程)
③低级调度(内存->cpu)
2、处理器调度类型:
①抢占式:允许调度程序根据某种原则,停止正在执行的进程,将处理机重新分配给另一个进程。
②非抢占式:一旦处理机分配给某个进程之后,便让该进程一直执行,直到该进程完成或因某事件阻塞,才能把处理机分配给其他进程,不允许某进程抢占已分配出去的进程。
3、处理器调度算法:
相关公式:
周转时间=完成时间-到达时间
带权周转时间=周转时间/运行时间
等待时间=周转时间-运行时间
相应比=(等待时间+运行时间)/运行时间
其中平均周转时间和平均带权周转时间都是评测调度性能的,两个都是越小越好。
①先来先服务算法(FCFS)
按照进程或者作业到达的先后次序分配,一般采用非剥夺的调度方式。
②最短作业/进程优先算法(SJF)
从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。采用不可抢占的调度方式。
③最短剩余时间优先算法(SRTF)
是抢占式的!!
④最高相应比优先算法(HRRF)
是从队列中选择相应比高的投入运行
⑤优先级调度算法
有抢占式的,也有非抢占式的,其中优先级优先,其优先级数越大的,越优先。
⑥轮转调度算法(RR)
时间片轮转法:将所有原就绪进程按照FCFS原则,排成队列,以此调度,把cpu分配给队首进程,并令其执行一个时间片,通常为10-200ms,时间片用完之后,进程被抢占并插入就绪队列队尾。
⑦多级反馈队列调度算法(MFQ)
多级反馈队列调度算法是时间片轮转和优先级调度算法的综合发展,通过动态调整进程优先级和时间片大小,不必实现估计进程执行时间,多级反馈队列可兼顾多方面的系统目标。【是抢占式】