计算机操作系统

第一章 操作系统引论
操作系统是一组能够有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合

1.1操作系统的目标和作用

目标

  1. 方便性
  2. 有效性:提高系统资源的利用率、提高系统的吞吐量
  3. 可扩充性
  4. 开放性

作用

  • OS作为用户与计算机硬件系统之间的接口(用户观点)

    用户可通过三种方式使用计算机:

    1. 命令方式(直接调用):

      • 联机命令接口 = 交互式命令接口
      • 脱机命令接口 = 批处理命令接口
    2. 系统调用方式(间接调用)

    3. 图标—窗口方式(GUI)

  • OS作为计算机系统资源的管理者(资源管理角度)
    处理机、存储器、I/O设备以及文件(数据和程序) 这四类资源进行有效管理

  • OS实现了对计算机资源的抽象

1.2 操作系统的发展过程

三种基本操作系统:多道批处理、分时系统、实时系统

  1. 人工操作方式 :效率低下
  2. 单道批处理方式 :资源利用不充分
  3. 多道批处理方式 :无交互能力、平均周转时间长
  4. 分时系统
  5. 实时系统: 将时间作为关键参数
  6. 微机操作系统

1.3操作系统的基本特性

  • 并发
    1. 并行与并发:
     并行性 :两个或多个事件在同一 时刻 发生
     并发性 :两个或多个事件在同一 时间间隔内 发生
     操作系统和程序并发是一起诞生的。
    2. 引入进程:
     所谓进程,是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
     进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础。
  • 共享
    1.互斥共享方式:
      当进程A要访问某资源时,必须先提出请求。若此时该资源空闲,系统便可将之分配给进程A使用。此后若有其他进程想要访问该资源,只要进程A未用完就必须等待。仅当进程A访问完并释放系统资源后,才允许另一个进程对该资源访问。
      临界资源(或独占资源):在一段时间内只允许一个进程访问的资源。
    2. 同时访问方式:
      系统中还有一类资源,允许在一段时间内由多个进程 “同时” 对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。典型的可供多个进程“同时”访问的资源时磁盘设备。

并发和共享是多用户(多任务)OS的两个基本条件且互为存在的条件

  • 虚拟
     把某种技术将一个物理实体变为若干个逻辑上对应物的功能称为“虚拟”。
     时分复用技术:它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,是设备得到最充分的利用。
     空分复用技术:它利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。
  • 异步
     进程的异步性:进程是以人们不可预知的速度向前推进的。(只有系统拥有并发性,才可能有异步性。)

1.4操作系统的主要功能

  • 处理机管理功能:
     进程控制
     进程同步
     进程通信
     调度
  • 存储器管理功能:
     内存分配
     内存保护
     地址映射
     内存扩充
  • 设备管理功能
     缓存管理
     设备分配
     设备处理
  • 文件管理功能:
     文件存储空间的管理
     目录管理
     文件的读/写管理和保护

第二章 进程的描述与控制

2.1 前驱图

 前驱图:一个有向无循环图。
 程序的顺序执行:顺序性封闭性(独占全机资源不受外界因素影响)、可再现性。
 程序的并发执行:间断性(相互制约将导致并发程序具有“执行——暂停——执行”这种间断性的活动规律)、失去封闭性不可再现性

2.2 程序的描述

&#8195**;PCB**: 为了是参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称之为进程控制块(PCB)
 有程序段、相关的数据段和PCB三部分构成了进程实体
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
 进程实体——静态
 进程——动态

  • 进程是程序的一次执行
  • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
  • 进程是具有独立功能的程序在一个数据合集上运行的过程,它是系统进行资源分配和调度的一个独立单位。
     同一个程序执行会对应多个进程。

进程的特征:

  1. 动态性
  2. 并发性
  3. 独立性
  4. 异步性
     进程的三种基本状态:
    1. 就绪状态:万事俱备,只欠CPU。只要再获得CPU就可立即执行。
    2. 执行/运行状态:进程获得CPU正在执行的状态。只能有一个进程处于执行状态。
    3. 阻塞状态:正在执行的进程由于发生某件事(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态。

另外两种常见的状态:创建状态和终止状态。

在这里插入图片描述
执行——阻塞是进程自身的主动行为。
阻塞——就绪是被动行为。
 挂起操作:当该操作作用于某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂停执行。若原本处于就绪状态,则该进程此时暂时不接受调度。与挂起操作对应的是激活操作。



     PCB
 PCB作为实体进程的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。
 PCB的作用是使 一个在多道程序环境下不能独立运行的程序 成为一个能独立运行的基本单位,一个能与其他程序并发执行的过程。
1.作为独立运行基本单位的标志。
2. 能实现间断性运行方式。
3. 提供进程管理所需要的信息。
4. 提供进程调度所需要的信息。
5. 实现与其他进程的同步与通信。
 进程控制块中的信息:进程标识符、处理机状态、进程调度信息、进程控制信息。
 进程控制块的组织方式:线性方式、链接方式、索引方式。

2.3 进程控制

 所谓进程控制,就是怎样实现进程状态之间的转换。
 进程控制一般是由OS的内核中的原语来实现的。
  OS内核的两大功能:支撑功能、资源管理功能。
 引起进程创建的事件:用户登录、作业调度、提供服务、应用请求。
 引起进程终止的事件:正常结束、异常结束、外界干预。
 引起进程阻塞和唤醒的事件:向系统请求共享资源失败、等待某种操作的完成、新数据尚未到达、等待新任务的到达。
  进程阻塞和唤醒是成对使用的。

 进程控制总结
进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事:

  1. 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
      a. 所有的进程控制原语一定都会修改进程状态标志。
      b. 剥夺当前运行进程的CPU使用权必然需要保存其运行环境。
      c. 某进程开始运行前必然要恢复其运行环境。
  2. 将PCB插入合适的队列。
  3. 分配/回收资源。

2.4 进程同步

所谓同步就是并发进程在一些关键点上可能需要等待与互通消息,这样的相互制约关系称为进程同步。
 进程同步机制的主要任务,是对多个相关进程在执行程序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。
进程互斥——间接相互制约关系
进程同步——直接相互直接关系
 同步机制应遵循的规则:
 1. 空闲让进
 2.忙则等待
 3.有限等待
 4.让权等待

信号量机制
信号量:系统中某资源的数量
P(S) ——申请资源——wait(S)
V (S)——释放资源——signal(S)

 整型信号量

wait(S){
	while(S<=0);
	S--;
}
signal(S){
	S++;
	}

记录型信号量

typedef struct{
	int value;//剩余资源数
	struct process_control_block *list;//等待队列的指针
}semaphore;
wait(semaphore *S){
	S->value--;
	if(S->value<0) block(S->list);//阻塞
}
signal(semaphore *S){
	S->value++;
	if(S->value<=0) wakeup(S->list);//就绪
}

AND型信号量和信号量集了解即可。P59

信号量的应用
 设置互斥信号量mutex,初值为1,取值范围(-1,0,1)。

  mutex=1时,表示无进程加入临界区。
  mutex=0时,表示有一个进程加入临界区运行。
  mutex=-1时,表示有一个进程加入临界区运行且有其他进程在阻塞队列中。

  1. 利用信号量实现进程互斥
    1. 分析并发进程的关键活动,划定临界区
    2. 设置互斥信号量mutex,初值为1
    3. 在进入区 P(mutex)——申请资源
    4. 在退出区 V(mutex)——释放资源
    P、V操作应当成对出现。
  2. 利用信号量实现进程同步
    1. 分析何时需要实现“同步关系”
    2. 同步信号量S为0
    3. “前操作”之后执行 V(S)
    4. “后操作”之前执行P(S)
  3. 利用信号量实现前驱关系

2.5经典进程的同步问题

生产者—消费者问题

同步关系
  只要缓冲区未满,生产者便可将消息送入缓冲区。
  只要缓冲区不为空,消费者就可从缓冲区中取走一个消息。
互斥关系
  缓冲区是临界资源,各进程必须互斥地访问。
关于P、V操作:

  • 互斥——处于同一进程
  • 同步——不在同一进程出现
    在这里插入图片描述
    empty=n,full=0;
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

例题:
在这里插入图片描述分析:
设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有橘子,其初值为0

在这里插入图片描述
PV操作的书写规范
在这里插入图片描述

管程

  一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。
  管程的四个部分:

  • 管程的名称
  • 局部于管程的共享数据结构说明
  • 对该数据结构进行操作的一组过程
  • 对局部于管程的共享数据设置初始值的语句。

管程特性P64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值