进程:进程是一个程序的执行过程。执行前需要将该程序放到内存中才能被CPU处理
系统调用 = 系统调用命令 = 广义指令
操作系统提供的接口:
1.命令接口:允许用户直接使用
2.程序接口:允许用户通过程序间接使用
3.GUI:现代操作系统中最流行的图形用户接口
并发与并行:
1.并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的
2.并行:指两个或多个事件在同一时刻同时发生
并发性指计算机系统中同时存在着多个运行着的程序
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
异步是指在多道程序环境下允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进
单道批处理系统
引入脱机输入/输出技术(用磁带完成)并监督程序负责控制作业的输入、输出
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量时间是在空闲等待I/O完成。资源利用率依然很低。
多道批处理系统:
主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持忙碌状态,系统吞吐量增大。
主要缺点:用户响应时间长,没有人机交互功能
分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
实时操作系统
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理并且要在严格时限内处理完事件。实时操作系统的主要特点是及时性和可靠性
内核是计算机上配置的底层软件是操作系统最基本最核心的部分
中断本质:发生中断就意味着需要操作系统介入,开展管理工作
当中断发生时,CPU立即进入核心态
当中断发生后,当前运行的进程暂停运行该并由操作系统内核对中断进行处理
对于不同的中断信号会进行不同的处理
用户态与核心态的切换是通过中断实现的并且中断是唯一途径
核心态与用户态切换时通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”
系统调用背后的过程
传递系统调用参数 -> 执行陷入指令(用户态) -> 执行系统调用相应服务程序(核心态) -> 返回用户程序
注意:
1.陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态
2.发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
3.陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令
进程的定义
程序:一个指令序列
引入多道程序技术之后:
为了方便操作系统管理,完成各程序并发执行,引入==进程、进程实体(进程映像)==的概念
PCB、程序段、数据段三部分构成了进程实体(进程映像)
PCB是进程存在的唯一标志!
进程
是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程通信
进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。
管道是指用于连接读写进程的一个共享文件,又名pipe文件。其实就是在内存中开辟一个大小固定的缓冲区
管道通信
1.管道只能采用半双工通信,某一时间段内只能实现单向传输。如果要实现双向同时通信,则需要设置两个管道。
2.各进程要互斥地访问管道。
3.数据以字符流的形式写入管道,当管道写满时,写进程的write()系统调用将被阻塞,等待读进程将数据取走。当读进程将数据全部取走后,管道变空,此时读进程的read()系统调用将被阻塞。
4.如果没写满,就不允许读。如果没读空,就不允许写。
5.数据一旦被读出,就从管道中被抛弃,这就意味着读进程最多只能有一个,否则可能会有读错数据的情况。
只有内核级线程才是处理机分配的单位。
进程在操作系统内核程序临界区中不能进行调度与切换
临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源
内核程序临界区一般是用来访问某种内核数据结构的
考试重点
:
多道程序系统相比于单道程序系统的优点
采用多道程序,当某个程序因为I/O等待而变为阻塞状态时,系统会把新的进程调入CPU运行,提高了CPU利用率
多处理器的 CPU调度策略与单处理器相比,增加了两方面的考虑:
一是考虑进程和处理器之间的亲缘关系
二是负载均衡
为什么页表管理机制需要硬件支持?
因为必须有硬件寄存器存放页表地址及页表长度
死锁发生的必要条件
互斥、持有并等待、禁止抢占、循环等待同时成立
对文件进行诸如读、写、删除等操作时,操作系统为什么要首先打开文件?
因为目录项会存放所有文件的信息,当进行读写等操作时,如果首先打开文件,就会直接在打开文件表中去查所操作文件的信息,避免了在目录项中进行大量查找
共享内存和消息传递是操作系统支持的两种基本的进程通信方式。普通情况下,共享内存方式比消息传递方式更快,请说明原因
因为消息传递机制主要通过系统调用实现,因而需要更多耗时的内存干预,而共享内存仅仅在创建共享区域时执行系统调用,一旦创建成功,便像常规访问内存一样访问。但是随着系统中处理器数目的增多,消息传递方式可能会在性能上超越共享内存方式。
请说明原因
随着处理器数目增多,共享内存带来的cache一致性问题显得突出
SCAN算法相对于SSTF算法而言,主要解决了饥饿问题
C-SCAN算法相对于SCAN算法而言,主要解决了磁盘两端的请求等待时间过长的问题
管程的基本特征
1.局部于管程的数据只能被局部于管程的过程所访问
2.一个进程只有通过调用管程内的过程才能进入管程访问共享数据
3.每次仅允许一个进程在管程内执行某个内部过程
死锁处理
1.预防死锁
2.避免死锁
3.检测和解除
页面置换算法:
1.FIFIO:先来先服务
2.OPT:置换未来最长时间不会使用的页面
3.LRU:置换最近最少使用的页面,即过去的历史中最长时间没有使用的页面
3.LFU:置换最小计数的页面