考点一、概念和特性
1. 概念
- OS是计算机系统中最重要的软件,主要功能:管理、分配计算机资源。控制设备和实时任务协调一致的工作。完成请求。
2. 特性:
- 并发性:
a. 基础
b.理解:打开A、B两部电影,在同一时间间隔内发生,CPU处理A1s,然后去处理B1s,轮换着来
c.和并行性区分:AB在同一时刻发生,一个CPU处理一道程序,如果需要处理多道程序,就安装多个CPU
d.考法:并发是宏观上的并行,微观上的串行 - 共享性:硬件、软件、数据资源,系统中的资源可被多个并发进程共同使用。互斥共享(打印机)和同时共享
- 虚拟性:
- 异步性
考点二、目标&作用
1. 目标:
- 方便性(使计算机系统易于使用)
- 有效性(提高系统资源利用率&吞吐量)
- 可扩充性(能适应计算机硬件、体系结构、应用发展的要求)
- 开放性(能遵循世界标准规范)
2. 作用:
- 对用户:人机接口(命令DOS、系统调用库函数、图形及窗口方式)
- 对计算机:管理计算机系统资源(处理机、存储器、I/O设备、文件)
- 处理机管理:对进程(eg:死锁)、线程的管理
进程控制(控制进程运行中的状态转换),进程同步(A进来,B就要在外面。A结束,B进来),进程通信(A出去了,要进行信息交换让B知道),调度(A出去,就要有一个进来,在队列中选择程序给其分配CPU)【谁进来、怎么进来、一次进一个、运行状态】 - 存储器管理:内存分配、地址映射、内存扩充、内存保护
- I/O设备:缓冲管理、设备分配、设备处理、虚拟设备
- 文件管理
- 考点:文件管理主要功能----实现文件的按名存取
文件存放----树型目录 - 操作系统和用户间的接口:用户接口(联机【用户用操作系统相应的指令去控制计算机】和脱机【用户用作业控制语言JCL编写作业说明说,交给系统执行和使用。无人机交互】) & 程序接口(OS和应用程序间的接口,由一组系统调用组成)
- 从应用程序看:实现对计算机资源的抽象(用户知道CPU可以处理我的数据,但是不知道具体操作细节。操作系统隐藏了这些细节,使用户使用更加便利)。
考点三、OS基本类型
1. 批处理系统【我把要处理的数据全交给操作系统,然后操作系统指挥计算机工作】
- 单道批处理系统 输入–执行–输出【单脑筋工作,一心一意】
特征:自动、顺序、单道(始终保持一道作业)
缺点:利用率低 - 多道批处理系统 共享CPU和系统中的各种资源
优点:资源利用率高、吞吐量大
缺点:平均周转时间长、无交互能力
举例:A,B,C三个程序,输入3s、执行4s、输出5s三个操作,当A到第二阶段的时候,B需要等1s才能进行第二阶段
2. 分时系统 多用户连接、时间片轮转、人机交互
- 特点:
交互性:用户可以根据响应结果进一步提出新的请求
及时性:系统可以及时响应用户请求
独占性
多路性:(同时性)同时多个用户使用一台计算机,宏观上多个人同时使用一个CPU,微观上多个人轮流使用CPU
3. 实时系统
- 理解:对外部数据或者用户响应及时响应,比如温控,当温度太高时,及时进行相应的降温操作。
- 应用:购票系统。
- 特点:
多路性(对多个购票软件的售票等信息进行采集以及控制)
独立性(对信息的采集和对对象的控制互不干扰)
及时性(对外部数据及时响应)
交互性
可靠性(当没剩几张票的时候,要准确售出)
4. 在以上三种系统中选择调度算法时,都可以遵循优先权准则,以便让某些紧急的作业可得到及时处理。
考点四、CPU指令—特权指令【系统态】和非特权指令【用户态】
1. 用户态如何转换为核心态(系统态)
- 当产生中断指令时,就要转成核心态进行处理【看电视时想上厕所,就要给电视机下发中断指令】
- 程序请求操作系统服务,执行系统调用(一种特殊的中断)
2. 特权指令(系统态下运行)eg:中断、取指、译码
3. 非特权指令(用户态运行)eg:粘贴、复制、剪切
补充知识点
1.系统调用
1. 什么时候会进行系统调用
- 当一个进程在用户态需要使用到内核态的功能时,进行系统调用,进入内核态。
2.常见的系统调用命令:
2.中断分类
- 硬件故障、程序异常、自愿(系统调用)、I/O中断、外部中断
3.用户态和内核态(程序处于的两种状态)
1. 触发条件
4. 什么是堆和栈,都存储哪些数据
- 堆区:程序员分配释放,比如在java中new的对象都放在堆区
- 栈:执行方法的地方,存放局部变量,函数的参数值等
5. 如何理解分布式锁
- 控制分布式系统同步访问共享资源的一种方式。通常需要互斥访问来保证一致性。
处理器管理
考点五、程序
- 程序:指令的有续集合、静态
- 执行方式:顺序执行&并发执行
- 顺序执行:顺序性【按顺序执行】、封闭性、可再现性【多次执行结果相同】【拓扑形成的代码。】
- 并发执行:间断性【比如输入3s–执行4s–输出5s,等待过程中出现间断】、失去封闭性【系统中的资源状态由多个程序改变】、不可再现性【由于运行速度不同导致多次执行结果不同】
考点六、进程
- 引进进程的原因:程序很难并发执行
- 进程:在没有引进线程的时候,它是系统进行资源分配和调度的一个独立单位。
- 特点:
a. 动态(创建产生、调度执行、撤销消亡) -----考点:进程和程序的区别:程序静态、进程动态
b. 并发性
c. 独立性:可独立运行
d. 异步性 - 结构特征:
考点:
a. 进程实体组成:程序段、相关数据段【eg:QQ的聊天信息】、PCB
b.PCB:进程控制块,进程存在的唯一标志
c.PCB经常被系统访问,故常驻内存。 - 进程调度(微观调度)的主要功能:(选择一个主存中的进程调出到外存?)将就绪队列中的进程调到CPU执行。
考点七、线程
1. 考点:
- 线程和进程的区别:线程是CPU调度和分派的基本单位,比进程更小,基本上不拥有系统资源。进程是拥有资源的基本单位。进程:线程=1:n or 1:1 。线程开销小,进程开销大。
- 程序:进程=1:n or 1:1 eg:一个WPS软件(程序),打开多个WPS文档(进程)
2.线程属性:
- 轻实体—基本上不拥有系统资源
- CPU调度和分派的基本单位
- 线程就是为了更好的并行而出现的,所以线程可以并发执行
- 共享进程资源
考点总结:线程、程序、进程
1. 进程和程序有什么区别:
- 进程是程序的一次执行过程,是动态概念。程序是一组有序的指令集和,是静态概念。
- 进程是暂时的,有生命周期,是程序在数据集上的一次执行,可创建可撤销,程序是永存的
- 进程具有并发行,程序没有
- 进程是竞争计算机资源的最小单位,程序不是
- 一个程序可对应多个进程; 一个进程可以执行一个程序或多个程序
2. 进程和线程的区别:
-
根本区别:进程是操作系统资源分配的基本单位,而线程是处理器CPU任务调度和执行的基本单位
-
资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
-
包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
-
内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的
-
影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
-
执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行。
3. 为什么有了进程,还要有线程呢?
-
进程可以使多个程序并发执行,以提高资源的利用率和系统的吞吐量,但是其带来了一些缺点:
a. 进程在同一时间只能干一件事情;
b. 进程在执行的过程中如果阻塞,整个进程就会被挂起,即使进程中有些工作不依赖与等待的资源,仍然不会执行。 -
基于以上的缺点,操作系统引入了比进程粒度更小的线程,作为并发执行的基本单位,从而减少程序在并发执行时所付出的时间和空间开销,提高并发性能。
4. 进程的状态转换
-
进程包括三种状态:就绪态、运行态和阻塞态。
a. 就绪:已经获得除了CPU之外的所有资源。
b. 运行:进程获得CPU,执行程序。单处理机系统中一个进程处于执行状态,多处理机系统中,多个进程处于执行状态。
c. 阻塞(等待) -
就绪 —> 执行:对就绪状态的进程,为之分配了处理机后。
-
执行 —> 阻塞:正在执行的进程因发生某等待事件而无法执行。
eg1:进程提出输入/输出请求而变成等待外部设备传输信息的状态,
eg2:进程申请资源(主存空间或外部设备)得不到满足时变成等待资源状态。
eg3:进程运行中出现了故障(程序出错或主存储器读写错等)变成等待干预状态等等; -
阻塞 —> 就绪:处于阻塞状态的进程,在其等待的事件已经发生,如输入/输出完成,资源得到满足或错误处理完毕时,处于等待状态的进程并不马上转入执行状态,而是先转入就绪状态,然后再由系统进程调度程序在适当的时候将该进程转为执行状态;
-
执行 —> 就绪:
eg1:时间片用完而被暂停执行
eg2:在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行而被迫让出处理机时,该进程便由执行状态转变为就绪状态。
考点八、进程三种基本状态
- 三种状态:【去银行办理业务,首先要准备好自己的身份证等相关证件,等待柜台人员。等到柜台人员时,我就去办理业务。业务办理到一半,发现我的银行卡没有带,中断业务,我回去取。当我取回来的时候,需要再次排队等候柜台人员】
a. 就绪:获得了除CPU外所有资源。
b. 执行(运行):进程获得CPU,执行程序。单处理机系统中一个进程处于执行状态,多处理机系统中,多个进程处于执行状态。
c. 阻塞(等待)