操作系统概念

操作系的概念

操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。

提供的功能:处理机管理,存储器管理,文件管理,设备管理
目标:安全、高效

功能:gui

联机命令接口(和电脑交互),脱机命令接口(一次性运行一系列命令),程序接口(如print函数)

操作系统的四个特征

四个特征:并发,共享,虚拟,异步

并发:多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但是在微观上是交替发生的

并行:指多个事件在同一时刻同时发生

注:单核cpu同一时刻只能执行一个程序,各个程序只能并发的执行

共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

共享有两种方式:互斥共享方式,同时共享方式(一个时间段内,允许多个进程“同时”对它进行访问)。

虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。

异步:是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

操作系统的发展与分类

手工操作系统:在纸带机上打孔输入程序,在这阶段,用户独占全机,资源利用率极低

批处理阶段,单道批处理系统:引入脱机输入/输出技术,并由监督程序负责控制作业的输入输出。缺点;内存中仅能有一道程序运行,cpi有大量时间是在空闲等待io完成

多道批处理系统:操作系统正式诞生。多道程序并发执行,共享计算机资源,资源利用率大幅提升。没有人机交互功能

分时操作系统:计算机以时间片为单位轮流为各个用户作业服务,各个用户可通过终端与计算机进行交互。解决了人机交互问题。但是不能优先处理一些紧急的任务。

实时操作系统:分为硬实时系统和软实时系统。

网络操作系统

分布式操作系统

个人计算机操作系统

操作系统的运行机制

中断和异常

cpu上会运行两种程序,一种是操作系统内核程序,一种是应用程序。

内中断(异常),外中断(与当前执行的指令无关,中断信号来源于cpu外部)

中断的分类:内中断:陷阱、故障、终止
外中断:时钟中断、i/o中断请求

系统调用

系统调用是操作系统提供给应用程序使用的接口

系统调用功能:设备管理、文件管理、进程控制、进程通信、内存管理

系统调用的过程:传递系统调用参数、执行陷入指令、执行相应的内请求核程序处理系统调用、返回应用程序

操作系统的体系结构

内核

原语:是一种特殊的程序,具有原子性。一气呵成完成,不可被中断

操作系统的引导

进程管理

进程的概念、组成、特征

进程的概念:是动态的,是程序的一次执行过程。

当进程被创建时,操作系统会为进程赋予唯一的id-PID

进程控制块(PCB):PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,回收PCB。

PCB保存的信息:进程描述信息、进程控制和管理细腻些、资源分配清单、处理相关信息。

进程的组成:PCB、程序段、数据段

程序段:包含程序指令

数据段:包含运行过程中产生的各种数据

进程的特征:动态性、并发性、独立性、异步性、结构性

进程的状态

三种基本状态:运行态、就绪态、阻塞态

创建态:进程正在被创建,在这个阶段操作系统会为进程分配资源、初始化PCB

就绪态:进程创建完成后,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行。

运行态:一个进程此时在CPU上运行,CPU会执行该进程对应的程序

阻塞态:在进程运行过程中,可能会请求等待某个实践的发生,在这个事件发生之前,进程无法继续往下执行,此时操作系统会让整个进程下CPU

执行态:一个进程可以执行exit系统调用,请求操作系统终止该进程。
在这个状态中,系统会回收CPU所有资源,当回收完毕,这个进程就彻底消失了。

注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态。

进程控制

进程控制:主要功能是对系统中的所有进程实施有效的管理,简单来说就是实现进程状态转换。

怎么实现进程控制

原子性:由关中断指令和开中断指令两个特权指令实现的

创建原语:申请空白pcb,为新进程分配所需资源,初始化pcb,将pcb插入就绪队列。

撤销原语:从pcb集合中找到终止进程的PCB,若进程正在运行,立即剥夺cp,将cpu分配给其他进程,终止其所有子进程,将该进程拥有的所有资源归还给父进程或操作系统,删除pcb

阻塞原语和唤醒原语

一个进程因为什么事情阻塞就要因为什么进程唤醒

进程通信

进程间通信:是指两个进程之间产生数据交互。

进程是分配系统资源的单位,因此各进程拥有的内存地址空间相互独立。

进程通信:共享存储,消息传递,管道通信。

共享存储

共享存储就是一个共享的区域,所有进程都可以进行访问。

消息传递(直接通信方式)

管道通信

从一端写入数据,从另一端导出数据,

信号

信号:用于通知进程某个特定事件已经发生。进程收到一个信号后,对该信号进行处理。