操作系统引论

操作系统定义

是管理计算机硬件和软件资源的计算机程序,同时也是计算机系统的内核与基石

操作系统作用

  • OS作为用户与计算机硬件系统之间的接口
  • OS作为计算机系统资源的管理者
  • OS实现了对计算机资源的抽象

分时系统的原理与特征

原理

  • 人机交互
  • 共享主机
  • 一台主机上链接了多个配有显示器和键盘的终端并由此组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源

特征

  • 多路性
  • 独立性
  • 及时性
  • 交互性

脱机I/O原理

事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入到磁带上,当CPU需要这些程序和数据时,再从磁带上高速地调入内存。
当CPU需要输出时,可由CPU把数据直接从内存高速的输送到磁带上,然后在另一台外围机的控制下,再将磁带上的结果通过相应的输出设备输出。
由于程序和数据的输入输出都是在外围机的控制下完成的,或者说他们是在脱离主机的情况下进行的,故称脱机IO。
其优点是:减少CPU空闲时间,提高IO速度。

操作系统的基本特征

  • 并发
  • 共享
  • 虚拟
  • 异步

图0

作业

31页:2,3,5,8, 11, 14

进程管理

程序顺序执行时的特征

  • 顺序性
  • 封闭性
  • 可再现性

程序并发执行时的特征

  • 间断性
  • 失去封闭性
  • 不可再现性

为什么引入进程

实现程序并发执行

进程定义

进程是程序的一次执行。

进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

进程特征

动态性

  • 进程描述执行的程序
  • 是动态的
  • 具有生命周期

并发性

  • 引入进程就是为了保证程序并发执行

独立性

  • 进程是OS资源分配和调度的一个独立单位
  • OS以进程为单位分配处理机、内存、I/O设备

异步性

  • 指进程按各自独立的、不可预知的速度向前推进
  • “走走停停”
  • 原因:共享资源,进程之间相互影响

进程的基本状态、相互转换原因及转换图(三态)

图1

系统态(核心态)和用户态

系统态(内核态):具有较高的特权,能执行一切指令,访问所有的寄存器和存储区。OS在内核态运行。
用户态:具有较低特权的执行状态,仅能执行规定的指令,访问指定的寄存器和存储区。应用程序在用户态运行。

具有挂起状态的进程状态、相互转换原因及其转换图(五态)

什么是挂起状态
挂起:暂停程序的执行,进程处于“静止” 状态

引入挂起状态的原因

  • 终端用户请求。
  • 父进程请求。
  • 负荷调节需要。
  • 操作系统需要。

图2

具有创建终止状态的进程状态、相互转换原因及其转换图(七态)

图3

什么是进程控制块?进程控制块的作用

为了便于系统描述和管理进程的运行,OS为每个进程定义了数据结构,即进程控制块。

作用

  • 进程控制块是描述进程的数据结构。
  • 进程与PCB是一一对应的
  • OS根据PCB控制和管理进程。

临界资源与临界区区别

临界区:进程中访问临界资源的那段代码
临界资源:一段时间内只允许一个进程访问的资源

同步机制应遵循的规则

  • 空闲让进: (临界资源)空闲让(进程)进(入临界区)。
  • 忙则等待: (临界资源)忙(进程)则等待(进入临界区)。
  • 有限等待: (进程)等待有限(时间进入临界区) 。
  • 让权等待: (进程)让(处理器)权等待(进入临界区)。

记录型信号量的定义

记录型信号量是一种不存在“忙等”现象的进程同步机制。

信号量正负值的物理意义

S-> value初值表示系统中某类资源的数目。

当S->value >0时,其值表示系统中某类资源当前可用数目

当S->value <0时,其绝对值 | S->value | 表示在该信号量链表中已阻塞进程的数目。

如果S->value的初值为1,资源的数目为1,表示只允许一个进程访问临界资源,此时的信号量即互斥信号量。

wait 和 signal 操作

wait操作

  • 每次wait操作表示进程请求一个单位的该类资源:
  • S->value = S->value -1;
  • 当S->value<0时,表示该类资源已分配完毕,因此进程应调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表S->list中。
  • 因此记录型机制遵循了“让权等待”准则。

signal操作

  • 对信号量的每次signal操作,表示执行进程释放一个单位资源,
  • S->value = S->value +1操作表示资源数目加1。
  • 若加1后仍是S->value ≤0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,故还应调用wakeup原语,将S->list链表中的第一个等待进程唤醒。
  • 被唤醒的进程由阻塞状态转变为就绪状态

AND 型信号量的定义,Swait 和 Ssignal 操作

AND同步机制的基本思想:同时申请,同时释放
Swait操作

swait

Ssignal操作

ssignal

生产者-消费者问题算法

方法1

t0

t1

方法2

t2

方法3

用信号量机制实现

t3

不会死锁的哲学家就餐问题算法

方法1

t4

方法2

奇数动手算法

t5

t6

方法3

用信号量机制实现

t7

读者-写者问题算法

方法1

ps:代码有问题

t8

说明:

  • 设置一个整型变量readcount表示正在读的进程数目。
  • 只要有一个Reader进程在读,便不允许Writer进程去写。
  • 仅当readcount=0, 表示尚无Reader进程在读时,Reader进程才需要执行Wait(Wmutex)操作。
  • 若wait(Wmutex)操作成功,Reader进程便可去读,相应地,做readcount+1操作。
  • 仅当Reader进程在执行了readcount减1操作后其值为0时,才须执行signal(Wmutex)操作,以便让Writer进程写。

方法2

ps:代码没问题

t9

t10

t11

公交车算法

方法1

t12

高级进程通信

利用操作系统所提供的一组通信命令,高效地传送大量数据的通信方式。
一共有三种类型:

t13

消息传递通信的两种通信方式

直接通信(消息缓冲队列通信机制)
间接通信(信箱通信)

消息缓冲队列通信属于什么通信

是一种直接消息传递系统

线程定义及属性

有时称轻量级进程,是进程中的一个运行实例,是CPU调度单位。
在一个进程中,可以独立运行的程序片段叫作“线程”

线程和进程区别

1、调度性
2、并发性
3、拥有资源
4、独立性
5、系统开销
6、支持多处理机系统

多线程 OS 中的进程的作用

进程作为系统资源分配的单位。
一个进程拥有多个线程。
进程不是一个可执行的实体,而是一个资源的载体。

前趋图及代码

图片

t14

代码

t15

t16