操作系统概念6小时速成QA版速记

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

操作系统管理软件吗?

操作系统分配资源吗?

操作系统提供接口吗?

 处理机管理:用哪个cpu处理?

设备管理:键盘,显示器给哪个进程使用?

存储器管理:把程序相关的数据放入内存

2.操作系统的功能:向上层提供方便易用的服务和对硬件机器的拓展

3.GUI:图形化用户接口

4.交互式命令接口:

  脱机命令接口:批处理命令接口

 5.程序接口:程序进行系统调用来使用接口

 

 6.操作系统的特征

 操作系统有并行吗?多核gpu呢存在并行吗?  只存在并发

操作系统的并发有系统调用吗?

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

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

 操作系统的并发:操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,

单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行

多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行而微观上看是交替运行的。

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

挂起的进程还共享资源吗

共享什么?

给什么共享?进程还是线程?

什么时候共享?

谁负责共享?

互斥共享:照相机的闪光灯

同时共享:微信和qq发送同一个文件

 并发和共享的关系

没有并发,还会有共享吗? 

不能共享,还能并发吗?

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

虚拟有什么用?

虚拟在什么时候用?

怎么实现虚拟?

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

什么时候存在异步?

如何解决异步问题?

如何利用异步?

 7.os发展和分类

 想解决什么问题?各自的优缺点?

手工操作阶段:用户独占全机、人机速度矛盾导致资源利用率极低

批处理阶段: 脱机输入输出技术 

 缓解了一定程度的人机速度矛盾资源利用率有所提升

内存中仅能有一道程序运行,只有该程序运行结束之后才能进入下一程序.CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。

多道批处理系统:程序并发运行 操作系统正式诞生

多道批处理系统的多道是什么意思?

 多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。

用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg 无法调试程序/无法在程序运行过程中输入一些参数)

分时操作系统:满足用户的交互需求 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互

 用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别入的存在。

不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的

实时操作系统:

哪里实时?

有什么用?

怎么实时?

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性
如:导弹控制系统、自动驾驶系统
硬实时系统。必须在绝对严格的规定时间内完成处理实时操作系统
软实时系统。能接受偶尔违反时间规定

 

8.操作系统的运行机制

 内核:由内核程序组成 一些特权指令只能让操作系统内核使用 在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型 cpu有两种状态 内核态和用户态  处于内核态的时候 说明运行的是内核程序 可以执行特权指令 程序状态寄存器 用户态就是值为0 内核态就是值为1 

内核=操作系统?

特权指令和非特权指令存在哪里?

内核态和非内核态存在cpu内还是cpu外?

用户态是0还是1

9.中断和异常

 中断的作用:将程序状态寄存器的0变成1,让内核夺回cpu使用权 的唯一途径

                      有了中断技术 才能并发

中断是什么?

发出中断的主体是什么?

中断的对象是什么? 是作业吗?

中断的目的是什么?

什么时候中断?

谁能发出中断指令?

中断和并发的关系?

内中断和非抢占式有关系吗?

外中断和抢占式有关系吗?

系统调度和中断有关系吗

  中断类型:

内中断 就是当前执行指令 非法 包括陷入,故障,终止

在什么内中断?

什么时候内中断?

内中断是主动还是被动?

外中断:通过陷入指令完成 陷入指令不是特权指令 系统调用属于陷入指令

在什么地方外中断?

什么时候外中断?

外中断是主动还是被动?

 中断机制的原理

cpu检测到中断信号后,根据中断的类型查询中断向量表,以此找到对应的中断处理程序在内存中的存放位置 就像计算机网络的路由转发表。

10.系统调用

系统调用和中断有关系吗?系统调用需要中断过程吗?中断过程需要系统调用吗?

下图描述的是系统调用支持的功能 那肯定是操作系统可以干的他都封装了api

系统调用包括进程控制,既然包括进程控制,肯定包含中断

系统调用涉及调度吗?系统调用涉及文件管理,肯定涉及作业调度

系统调用生活中的直观例子是什么?

 “系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务 

 系统调用是操作系统对上层提供的服务

下图描述的是系统调用支持的功能 那肯定是操作系统可以干的他都封装了api

 11.操作系统的体系结构:了解即可

 原语和系统调用什么关系?系统调用的执行是调用原语吗?

 回收资源可能是调用原语

 原语和PCB什么关系?

原语不可中断的设计理念?就跟上厕所差不多

原语通过pcb控制的设计理念?各种公共场所的排队场合都是给个单子

 原语:原子操作,不可被中断

            为什么原语不可中断:用特权指令 关中断指令和开中断指令 实现

                                                遇见关中断就不再检测中断信号,遇见开中断指令才继续检测中断信号,那么两个信号之间的指令不会被中断指令影响

         原语只做三件事:

                1.更新PCB中的信息

                2.将PCB插入合适的队列

                3.分配/回收资源

        进程创建有关的原语

           

 作业调度:就是从外存把程序放到内存

        撤销有关的原语:杀光你的后代,白发人送黑发人,不过你的财产全部归还为你的家长

        进程间的关系是树形结构

         正常结束就是进程自己请求终止(exit系统调用)

        异常结束 程序出现非法使用特权指令 然后被操作系统杀掉

        外界干预:人为的ctrl+alt+delete

阻塞有关的原语

阻塞原语就是 把人冰冻起来 然后封存档案

程序被什么阻塞 就要被什么唤醒

切换有关的原语

 

 将运行环境存入PCB:就是将寄存器中的中间结果存入PCB(运行环境就是寄存器中的中间结果)

        

所有功能都包括在内核——大内核,只包含关键功能——微内核

 

 12.进程

 

进程和程序哪个范围大?进程是程序在四维空间的切片

进程=程序段(包含程序指令)+数据段(存放运行过程中产生的各种数据)+PCB

进程是程序一次执行过程,一个程序可以有多个进程,进程是资源分配的独立单位

进程可以合理隔离运行环境,提高资源的利用效率(一个进程就像一个虚拟环境,所以也是资源分配的独立单位)

进程被调度 就是操作系统把程序放到cpu上

操作系统为进程分配唯一的PID 

PCB是进程的唯一标识,是个数据结构(就像csv格式),记录进程当前状态和控制进程运行的全部信息

 

 

 进程的特征:

 13.进程的状态和状态的转换

进程的状态:创建态——>就绪态(备胎)——> 运行态——>(阻塞态)——>就绪态——>运行态——>终止态(回收该进程的PCB)

阻塞态只能从运行态转换而来

阻塞态是被动的进入就绪态

运行态可以直接返回就绪态,是因为时间片花完了

运行态,就绪态,阻塞态是基本状态 

单核cpu 只有单个运行态,多核cpu可以有多个运行态

进程的组织方式:链式方式和索引方式

   链式方式 就像食堂窗口买饭 需要什么就在哪个队列后面排队 

  索引方式 就像点外卖 填表单 就是链式方式多了一级 用的不多

 14.进程控制

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程撤销已有进程实现进程状态转换等功能。(就是实现进程的状态转换)

如何实现进程控制:通过原语实现

进程的控制转换执行的步骤:改变PCB的state值,改变进程所属的队列

14.进程通信:

为什么需要进程通信:

进程没有通信会导致顾客-生产者问题,和哲学家吃饭问题

 进程通信:进程之间的信息交换

进程拥有的内存地址空间相互独立 ,一个进程不能直接访问一个进程的地址空间

进程通信的实现方式有:共享存储,消息传递,管道通信

进程间的同步的原则

空闲让进,忙则等待,优先等待,让权等待

共享存储:系统分配共享空间,两个进程都能访问但是访问是互斥的

                基于数据结构的共享:只能存特定数据结构的数据

                基于存储区的共享:操作系统只提供空间,数据的形式由进程决定

管道通信:管道就是内存中开辟一个固定的缓冲区 单个管道只提供半双工的通信

                  进程对管道的访问也是互斥的

                 管道中的数据一旦被读取,就从管道抛弃

消息传递:以格式化的消息为单位,进程有消息缓冲队列(就像计算机网络的接收窗口)

也可以通过信箱来转发(进程——>信箱——>进程)

 15.线程的概念

 什么是线程:

进程共享设备的回收分配,进程内存地址空间的时间开销 进程间的通信开销 导致了效率低

一个进程可以包含多个线程,cpu以线程为调度单位,但是依旧1以进程为资源分配单位

进程的线程是共享资源的 线程是程序进行的一次运行过程 在多核cpu可以并行的运行 但是线程几乎不拥有资源

16.线程的实现方式和多线程模型

 用户级线程和内核级线程为什么可以级联?

 用户级线程和内核级线程怎么形象理解?

用户级线程:while循环就是一个最弱智的“线程库",线程库完成了对线程的管理工作(如调度)

很多编程语言提供了强大的线程库,可以实线程的创建、销毁、调度等功能。

线程的管理是由应用程序通过线程库完成,不是由操作系统完成的

线程切换不需要cpu变态,操作系统意识不到用户级线程的存在

优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高
缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高。多个线程不可在多核处理机上并行运行。

 内核级线程:

线程的管理由操作系统完成

线程的切换需要cpu从用户态变成内核态

优点:当一个线程被阻塞后,别的线程还可以继续执行,并发能力强。多线程可在多核处理机上并行执行。

缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大。

用户级线程+内核级线程就是多线程模型

一对一模型:用户级进程分配一个内核级线程(一对一辅导,学校的管理成本高)

        优点:并发能力强(并发能力强就是解耦合效果好,互不干扰)

        缺点:只要用了内核级线程必然线程的管理成本高

多对一模型:(多个学生一个老师)

多对一模型:多个用户级线程映射到一个内核级线程。且一个进程只被分配一个内核级线程。

优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高(不用内核级线程必然效率高)
缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不。多个线程不可在多核处理机上并行运行(用户级线程必然并发性差)

多对多模型:必然两者的优点都有(多个学生多个老师)

16.调度的基本概念

 调度的主体是什么?

 为什么高级调度高级?

 为什么没有线程调度?

调度与进程的状态有关吗?

高级调度频繁还是低级调度频繁? 低级职位人员变动的频率很高,但是高管几乎不变

当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。

在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。调度解决的问题是 如何分配处理机给进程

高级调度是辅存与内存的调度

和中级调度什么区别?

中级调度将暂时不能运行的调至外存等待(挂起状态)进程重新调入内存,中级调度的频率比高级调度大

进程的七状态模型:就绪挂起和阻塞挂起

创建态,就绪态,运行态都可以就绪挂起

干嘛要挂起?挂在哪里?

阻塞态只能阻塞挂起

低级调度 :选取一个进程,分配给他处理机 频率很高

 什么时候需要进程调度:有处理机的时候

 什么时候不能进行进程调度

中断的时候可以调度吗 凭什么不能?

访问临界区代码的时候为什么不能进程调度?

1.在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。
2.进程在操作系统内核程序临界区(访问临界资源的代码)中。操作系统内核程序临界区(用来访问某种内核数据结构,比如进程的就绪队列)
3.在原子操作过程中(原语)。原子操作不可中断,要一气呵成(如之前讲过的修改PCB中进程状态标志,并把PCB放到相应队列)

进程的调度方式

干嘛按照剥夺还是非剥夺?

非剥夺调度方式(早期的批处理系统),又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

剥夺调度方式(适用于实时系统),又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的过程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

狭义的进程调度 和 进程切换的区别

狭义的进程调度是选中一个进程,进程切换时 切换处理机内的进程

广义的进程调度包含了 狭义的进程调度和 进程切换

 17.调度算法的评价指标

 各个指标为什么这么设计,各个指标如何计算

cpu利用率

总时间是什么的总时间? 题目都会给

什么时间算cpu忙碌的时间?

凭什么叫cpu忙碌的时间而不是cpu运行的时间?

 

 

 系统吞吐量

吞吐量的分子是什么?

凭什么计量单位是作业而不是进程?

总共花了多少时间 是什么时间? 题目都会给

 

周转时间

分子是什么?

周转时间是什么?凭什么叫周转时间?

带权周转时间有毛线用?

 

 

 

 

  进程同步

  进程同步是什么?

        给进程发生顺序排序

  进程同步有什么用?

        给进程排序

  进程在什么时候需要同步?

        在要求进程有序的时候

    什么进程需要同步?

    进程互斥

    进程互斥的用什么?临界资源 通过访问临界资源的代码来利用临界资源

     进程互斥过程中涉及进程调度吗?

              只要涉及到有空的处理机肯定会进程调度

              上一个进程时间片用完,下一个进程进入进入区,就需要处理机

    进程如何实现互斥?

        

              对进入区进行上锁

              对退出区进行解锁

                什么时候上锁?

                

                什么时候解锁?

                如何理解进入区和退出区的存在?

     进程互斥的时候 这些进程的状态是什么?就绪态还是阻塞态还是运行态?

     忙则等待,已有进程进入临界区,其他试图进入临界区的进程必须等待

     假如进程不进入临界区,才要释放处理机 进入就绪态或者阻塞态

     假如进程不进入区呢?是就绪态,阻塞态,还是运行态?

                对于单核处理机来说 肯定是就绪态

                对于多核处理机来说 肯定是就绪态

   

    互斥共享时一个时间段内只允许一个进程访问该资源 这个时间段是啥

        这个时间段是上一个进程的运行时

  单标志法

        单标志是什么?用一个标志表示能否进入进入区

        假如进程时间片用完了但是程序还没执行完 别的进程可以进入临界资源区吗? 不可以

        单标志法有什么缺陷?自己无法连续使用临界资源

双标志先检查法

        双标志是什么? 用两个标志表示两个进程是否进入临界区

        先检查什么?   先检查临界区是否上锁   后检查 就是先上锁后检查临界区

        双标志法相当于单标志法的设计思想的改变? 解耦合,让进程各自表达进入意愿

        双标志法的缺点:一个进程没机会上锁,另一个进程直接进来了

内存管理

        内存分配

                非连续内存分配

                        分页存储

分页存储

        页框是什么?页是什么?

        进程分割的是逻辑地址空间还是内存空间?进程的物理地址空间哪去了?

        页框和内存块的关系?

        页框和物理块的关系?

        物理页面和物理块的关系?

        页表是什么?有什么用?存储在哪里?一个进程有几张页表?

        页表项是什么?有什么用?什么时候用?如何通俗的理解页表项?页表项存储在哪里?

        页表记录进程和页面实际存放的内存块之间的映射关系

        页框大小和页面大小相等吗

如何找到逻辑地址A对应的物理地址?

先找到在哪个内存块,然后在内存块内找 

        如何确定块号范围?需要多少比特来存储?需要多少字节来存储?

        页号占用多少字节? 页号可以不占用存储空间(类比数组),数据的下标也不需要存储空间来存储

        如何实现地址的转换?

        进程各个页面是离散存放还是连续存放?

        进程各个页面内部可以连续存放吗?

        进程各个页面离散存放有什么好处?

具有快表的地址变换机构

        快表是什么? 高速缓存。又称联想寄存器。

        快表有什么用?存储最近访问过的页表项副本

        快表什么时候用?逻辑地址转化为物理地址的时候用

        cache和高速缓存的关系

        cache和寄存器的关系

        寄存器一般放在哪里?

        内存和cpu的相对位置?

基本分段存储管理

        相对于页表项,段表项的长度相同吗

        为什么要给出段基址和段长

        段表相当于页表多了什么?为什么?

        如何解释页表的存在

                打孔卡都是一页一页的

undefined

 虚拟内存管理

        请求分页方式

请求分页方式

        请求分页请求什么? 把需要的信息从外存调入内存,把不需要的信息从内存调到外存

        请求分页方式和基础分页方式的不同点?请求分页方式多了缺页中断机构

        请求分页的页表机制和基础分页方式的不同点?

                1.标记是否请求调页

                2.标记页面是否被修改

        访问字段有什么用?记录最近被访问几次

        缺页中断的时候进行的状态是就绪态还是阻塞态?

猜你喜欢

转载自blog.csdn.net/weixin_45955767/article/details/120393496