定义
操作系统(Operation System,OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统也是用户与计算机硬件系统之间的接口,同时也是计算机硬件和其他软件的接口。
发展阶段
手工阶段
单道批处理系统
多道批处理系统
分时操作系统
实时操作系统
网络操作系统
每台计算机都是相互独立的,它们并不能相互协同完成同一任务。
分布式操作系统
若干台计算机相互协同完成同一任务
基本概念
CPU
一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心 (Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据
进程
程序执行时的一个实例。进程是系统进行资源分配的独立实体,且每个进程拥有独立的地址空间
进程控制块
保存运行期间进程的数据,PCB是进程存在的唯一标志。进程=程序+数据+PCB。
线程
CPU调度的基本单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。在一个进程内部,可能要同时干多件事,这时就需要同时运行多个“子任务”,我们可以把这些“子任务”称为线程。线程属于进程,是进程的一个实体。
线程控制块
保存运行期间线程的数据,TCB是线程存在的唯一标志。
线程与进程的区别
进程是资源分配和调度的一个独立单元,而线程只是CPU调度的基本单元。线程自己不拥有系统资源,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源(寄存器、堆栈、上下文)。一个进程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。一个进程至少包括一个线程。进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束
多线程
指从软件或者硬件上实现多个线程并发执行的技术
并发
两个或多个事件在同一时间内发生,在单CPU系统中,这些事件分时交替执行
并行
两个或多个事件在同一时刻发生。在多处理器中,进程可以交替执行,还能重叠执行,实现并行处理
临界资源
一次仅允许一个进程使用的资源
临界区
每个进程中访问临界资源的那段代码
互斥
进程之间访问临界资源时相互排斥的现象
同步
进程之间存在依赖关系,一个进程结束的输出作为另一个进程的输入。具有同步关系的一组并发进程之间发送的信息称为消息。
异步
彼此独立,在等待某个事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。实现异步可以采用多线程技术或者交给其他进程来处理。
中断
当出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的事务。此时,CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断
CPU工作状态
管态
特权态、系统态或者内核态。CPU在管态下可以执行指令系统的全集。如果程序处于管态,则该程序就可以访问计算机的任何资源,即它的资源访问权限不受限制。通常,操作系统在管态下运行
目态
常态或用户态。处于目态时,程序只能执行非特权指令,不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间
用户态到内核态的切换
系统调用
用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。系统调用机制的核心是使用了操作系统为用户开放的中断
异常
CPU在执行用户态程序时,发生了某些事先不可知的异常,这时就会切换到处理此异常的内核程序中,也就转到了内核态
外部设备的中断
当外部设备完成用户请求操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令,转而去执行与中断信号对应的处理程序(该程序在内核态),如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换
特征
并发
两个或者多个程序在同一时间内发生
共享
系统中的资源可供内存中多个并发执行的进程共同使用
虚拟
把一个物理上的实体变为若干个逻辑上的对应物
异步
在多道程序环境下,允许多个进程并发执行,但因资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推送,这就是进程的异步性。