01操作系统期末复习重点笔记(一)

一、操作系统

1、什么是操作系统

计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计算机系统的核心与基石

2、操作系统的功能

  1. 处理机管理(处理机管理策略不同,操作系统的功能就不同)
  2. 存储管理(对存储器的分配、保护和扩充)
  3. 设备管理(对通道、控制器和输入输出设备的管理)
  4. 信息管理(系统软件资源的管理)
  5. 用户接口(用户对计算机操作的管理)

123为硬件资源的管理,4为软件资源的管理,5为用户操作的管理

3、操作系统的分类标准和类型

计算机的操作系统根据不同的用途分为不同的种类,从功能角度分析,分别有实时系统、批处理系统、分时系统、网络操作系统等。

批处理操作系统

特点:

  1. 用户脱机使用计算机
  2. 成批处理
  3. 多道程序运行

优点:提升了吞吐量、可靠性、系统资源利用率

缺点:交互性差、作业周转时间长。

分时系统

分时系统是一个联机、多用户、交互式的操作系统

特点:

  1. 交互性好
  2. 多用户同时性
  3. 独立性

实时系统

特点

  1. 即时响应
  2. 高可靠性

缺点:资源利用率有点低

网络操作系统

网络操作系统 ,是一种能代替操作系统的软件程序,是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。借由网络达到互相传递数据与各种消息,分为服务器(Server)及客户端(Client)

特点:

  1. 复杂性
  2. 高效性
  3. 并行性
  4. 安全性

4、操作系统的基本特征,什么并发

四大基本特征:

  1. 并发
  2. 共享
  3. 虚拟
  4. 异步

并发

并发指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故在微观上这些程序是分时地交替执行

5、指令的执行与中断

执行指令是计算提供的最基本的功能

指令的执行

  1. 处理机从内存读取指令
  2. 指令执行

指令中断

  1. 有紧急事件需要处理
  2. 系统发生故障

6、缓冲区的作用和类型

缓冲区(buffer),它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,显然缓冲区是具有一定大小的。

作用

  1. 减少读写次数,提高效率
  2. 可以解除两者的制约关系,数据可以直接送往缓冲区,高速设备不用再等待低速设备,提高了计算机的效率。

缓冲区的类型

缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。

1、全缓冲

在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。

2、行缓冲

在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据。

3、不带缓冲

也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。

二、操作系统的用户界面

1、什么是作业,作业的组成

在批处理中,作业就是抢占资源的一个基本单位,现在作作业相当于一个程序

组成

数据、程序、作业说明书

2、输入输出方式和spooling系统

联机输入输出

联机输入输出是指作业的I/O是联机的,也就是说作业从输入机到磁带,有磁带调入主存,以至于结果的输出和打印都是由中央处理机直接控制的。就是外围设备直接和主机相连

联机输入输出一般使用在交互系统中

脱机输入输出

脱机输入输出是指外设不由中央处理机直接控制,主要是由外围计算机(一般使用个人计算机)与外设打交道,过程是作业通过外围计算机输入到磁带上,当主机需要输入作业时,就把输入带同到主机上,主机从输入带上把作业调入主存,并予以执行,作业完成后,主机负责把结果记录到输出带上,再由外围计算机把输出带上的信息打印输出。

解决了联机输入输出效率太慢的问题,但是需要用户来直接干涉后援存储器来进行数据从主机到外围计算机的交换

直接耦合方式

直接耦合方式保留了脱机输入输出的快速输入输出的优点,也不需要使用人工直接干涉,但是需要一个大的公用存储器

01操作系统期末复习重点笔记(一)

数据直接从外围设备写入到公用存储器里面,然后主机想调用可以到公用存储器中调用,结果输出到公用存储器,外围设备可以到里面调用结果

spooling系统

spooling又名假脱机输入方式

原理图如下:

01操作系统期末复习重点笔记(一)

SPOOLing系统既不同于脱机方式,也不同于直接藕合方式。它在输入和输出之间增加了“输入井”和“输出井”的排队转儲环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。

网络输入方式

当用户需要从计算机网络中将一台计算机的信息要求传送到联网的另一台主机上进行浏览(Browser)操作或执行下载(Download)等任务要求时,就构成网络输入方式。主要涉及网络通信技术。

3、操作系统向用户提供的接口:命令控制界面和系统调用

命令控制界面

系统调用

操作系统内核为应用程序提供的服务/函数

三、进程管理

1、进程的定义和其组成

进程是一个程序对某个数据集的执行过程,是分配资源的基本单位

组成

由PCB(进程控制块)、程序和数据组成

2、进程的各种状态及状态转换

01操作系统期末复习重点笔记(一)

3、进程调度的功能、时机和原因

两种占用CPU的方式

可剥夺式 (可抢占式preemptive):就绪队列中一旦有优先级高于当前执行进程优先级的进程存在时,便立即发生进程调度,转让处理机。

不可剥夺式 (不可抢占式non_preemptive):即使在就绪队列存在有优先级高于当前执行进程时,当前进程仍将占用处理机直到该进程自己因调用原语操作或等待I/O而进入阻塞、睡眠状态,或时间片用完时才重新发生调度让出处理机。

引起进程调度的时机和原因

  1. 正在执行的进程执行完毕
  2. 执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等状态。
  3. 执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了v原语操作**了等待资源的进程队列。
  4. 执行中进程提出I/O请求后被阻塞
  5. 在分时系统中时间片已经用完
  6. 就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度

4、临界资源和临界区,对临界区访问应遵循的原则

临界资源是一次仅允许一个进程使用的共享资源

临界区不允许多个并发进程的那段程序

临界区访问应遵循的原则

  1. 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
  2. 任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
  3. 进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
  4. 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

5、信号量含义及初值

信号量管理临界区的公共资源,他代表可用资源的实体

其初值应该大于零

6、P、V原语

P是荷兰语Proberen(测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。

操作为:申请一个空闲资源(把信号量减1),若成功,则退出,进程继续执行;若失败,则该进程被阻塞

01操作系统期末复习重点笔记(一)

V是荷兰语Verhogen(增加)的首字母。为唤醒原语,负责把一个被阻塞的进程唤醒,它有一个参数表,存放着等待被唤醒的进程信息。

操作为:释放一个被占用的资源(把信号量加1),如果发现有被阻塞的进程,则选择一个唤醒之

01操作系统期末复习重点笔记(一)

7、死锁的定义、产生原因、产生死锁的必要条件

“死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁

产生的原因

  1. 因为系统资源不足。
  2. 进程运行推进的顺序不合适。
  3. 资源分配不当等。

发生的四个必然条件

  1. 互斥条件:一个资源每次只能被一个进程使用。
  2. 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
  3. 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
  4. 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

8、安全算法、银行家算法

这个以后写一篇新的文章进行说明

联系和区别

  1. 地址空间:线程是进程内的一个执行单元,进程内至少有一个线程,多个线程共享进程的地址空间,而进程有自己独立的地址空间
  2. 资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
  3. 线程是处理器调度的基本单位,但进程不是
  4. 二者均可并发执行
  5. 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制