操作系统(第三章 作业、进程、线程、调度)

操作系统(第三章作业、进程、线程、调度)


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

一、作业

1. 基本概念

  • 作业
    ·用户在一次应用业务处理(计算、打印、发邮件等)过程中,要求计算机系统所做的工作
    ·作业由 程序数据作业说明书 组成
    在这里插入图片描述

  • 作业步
    ·作业由不同顺序相连的作业步组成。
    ·作业步是在一个作业的处理过程中,计算机所做的相对独立的工作,形成中间结果文件

  • 作业流:一次由一批作业进入系统,并在OS控制下,各作业依次进行处理

2. 典型作业步

在这里插入图片描述

作业 & 进程:

  • 作业是用户向计算机提交任务的任务实体进程则是完成用户任务的执行实体,是系统申请分配资源的基本单位。(作业布置任务,进程完成任务)
  • 作业在没有进入执行状态时,被存入外存的后备作业队列等待;进程一旦被创建,总有相应部分在内存
  • 一个作业可由多个进程组成,且必须至少由一个进程组成
  • 作业的概念主要用于批处理系统进程的概念用于几乎所有的多道系统

3. 批处理系统的作业管理

在这里插入图片描述

4. 作业控制块(JCB)

  • JCB 是作业说明书的动态描述
  • JCB作业在批处理系统中存在的唯一标志
  • OS 根据 JCB了解作业的情况,同时利用JCB控制作业的运行
    在这里插入图片描述

5. SPOOLing 系统工作原理

  • 一种用于提高计算机系统中输入输出(I/O)操作效率的技术

外围设备是指计算机系统中除处理机、内存之外的其他设备,它们通过输入/输出(I/O)接口与处理机进行数据交换。
外围设备可以分为输入设备(如键盘、鼠标)和输出设备(如显示器、打印机)。此外,还有存储设备(如硬盘驱动器、固态硬盘)。

在这里插入图片描述

6. 批处理作业的状态及转换

在这里插入图片描述

二、进程

1. 进程概念

  • 程序:是静态的,就是存放在磁盘里的可执行文件,就是一系列的指令集合

(1)程序的顺序执行特征:
·顺序性:每一操作必须在下一个操作开始之前结束
·封闭性:程序运行时独占全机资源
·结果的确定性:程序一旦开始执行,执行结果不受外界影响
·结果不可再现性:程序执行环境与初始条件相同,当程序重复执行,无论从头到尾还是走走停停,结果相同
(2)程序并发执行特征:
·间断性:程序并发执行,资源共享,相互制约导致并发程序具有“执行 – 暂停 – 执行”这种间断的活动规律
·失去封闭性:每个程序不再独占资源
·不可再现性:程序并发时,由于失去了封闭性导致其又失去了不可再现性

多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性导致其又失去了不可再现性,由此,决定了通常的程序是不能参与并发执行的,否则,程序的运行也就失去了意义。为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程”的概念。

Q:
(1)多道程序如何提供服务(动态控制)?
(2)并发程序之间如何正确传递消息?
(3)对 CPU 如何调度,使每个用户公平使用 CPU?(CPU是一个只可调度,不可分配的资源)

  • 进程:是动态的,是程序的一次执行过程
  • 同一个程序多次执行会对应多个进程

2. 进程的组成

?操作系统怎样区分各个进程

  • 当进程被创建,操作系统会为该进程分配一个唯一的、不重复的“身份号” – PID(进程ID)
  • PID 每次打开都会重新分配,即使是打开同一个应用程序
    在这里插入图片描述

3. 进程的特征

在这里插入图片描述

4. 进程的状态与转换

在这里插入图片描述

在这里插入图片描述

运行态 -> 阻塞态 eg:
(1)磁盘 I/O 操作
(2)网络请求:在等待响应期间,该进程将处于阻塞状态,直到收到回复。

5. 进程的控制

在这里插入图片描述

6. 进程通信

  • 进程间通信(IPC)是指两个进程之间产生数据交互
    在这里插入图片描述
  • 为什么进程通信需要操作系统支持?
    在这里插入图片描述

(1)共享存储

在这里插入图片描述

  • 基于存储区的共享:操作系统在内存中划出一块共享存储区,数据的形式、存放位置都由通信进程控制,而不是操作系统。这种共享方式速度很快,是一种高级通信方式
  • 基于数据结构的共享:比如共享空间里只能放一个长度为10的数组。这种共享方式速度慢、限制多,是一种低级通信方式

(2)消息传递

  • 进程间的数据交换格式化的消息(Message)为单位。进程通过操作系统提供的**“发送消息/接收消息”**两个原语进行数据交换。
    在这里插入图片描述

  • 直接通信方式:消息发送进程要指明接收进程的 ID
    在这里插入图片描述

  • 间接通信方式:通过“信箱”间接地通信。因此又称“信箱通信方式”
    在这里插入图片描述

(3)管道通信

在这里插入图片描述

  • 管道只能采用半双工通信,某一时间段内只能实现单向的传输。如果要实现双向同时通信,则需要设置两个管道
  • 各进程互斥访问管道(由操作系统实现)
  • 当管道写满时,写进程阻塞,直到读进程将管道中的数据取走,即可唤醒写进程
  • 管道读空时读进程阻塞,直到写进程往管道中写入数据,即可唤醒读进程
  • 管道中的数据一旦被读出,就彻底消失。因此,当多个进程读同一个管道时,可能会错乱。对此,通常有两种解决方案:①一个管道允许多个写进程,一个读进程(2014年408真题高教社官方答案);②允许有多个写进程,多个读进程,但系统会让各个读进程轮流从管道中读数据(Linux的方案)。
    在这里插入图片描述

三、线程

1. 什么是线程,为什么要引入线程?

在这里插入图片描述
在这里插入图片描述
进程是程序的一次执行。但这些功能显然不可能是由一个程序顺序处理就能实现的
在这里插入图片描述

· 可以把线程理解为“轻量级进程”。
·线程是一个基本的 CPU 执行单元,也是程序执行流的最小单位
·引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)
·引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)

2. 引入线程机制,有什么变化?

在这里插入图片描述

3. 线程的属性

在这里插入图片描述

4. 线程的实现方式

(1)用户级线程(ULT)

在这里插入图片描述

Q:
(1)线程的管理工作谁来完成?
应用程序通过线程库来完成
(2)线程切换是否需要 CPU 变态?
在用户态下就可以完成
(3)操作系统是否能意识到用户级线程的存在?
只知道进程的存在,不知道线程存在

在这里插入图片描述

(2)内核级线程(KLT)

在这里插入图片描述

Q:
(1)线程的管理工作谁来完成?
操作系统来完成
(2)线程切换是否需要 CPU 变态?
需要从用户态转换为内核态
(3)操作系统是否能意识到用户级线程的存在?
yes

在这里插入图片描述

5. 多线程模型

  • 在支持内核级线程的系统中,根据用户级线程内核级线程的映射关系,可以划分为几种多线程模型

(1)一对一模型

在这里插入图片描述

(2)多对一模型

在这里插入图片描述

(3)多对多模型

在这里插入图片描述

Tips:
·用户级线程是“代码逻辑”的载体
·内核级线程是“运行机会”的载体(内核级线程才是处理机分配的单位)

6. 线程的状态与转换

在这里插入图片描述

7. 线程的组织与控制

在这里插入图片描述

四、处理机调度

1. 调度

调度的实质是一种资源分配

2. 三个层次的调度

在这里插入图片描述

3. 进程调度

(1)进程调度的时机

在这里插入图片描述

在这里插入图片描述

(2)切换与过程

  • “狭义的调度”:从就绪队列中选一个要运行的进程(包括刚刚暂停的进程 or 另一个进程)
  • 切换:一个进程让出处理机,另一个进程占用处理机
  • 广义的进程调度:包含选择一个进程和进程切换两个步骤
  • 进程切换
    (1)对原来运行进程各种数据的保存
    (2)对新的进程各种数据的恢复

(3)进程调度方式

  • 非剥夺调度方式(非抢占):只能由当前运行的进程主动放弃 CPU
  • 剥夺调度方式(抢占):可由操作系统剥夺当前进程的 CPU 使用权

4. 调度器、闲逛进程

  • 调度器

在这里插入图片描述
在这里插入图片描述

  • 闲逛进程:调度程序永远的备胎,没有其他就绪进程,运行闲逛程序进程
    · 特性
    (1)优先级最低
    (2)可以是0地址指令,占一个完整的指令周期
    (3)能耗低

5. 调度算法的评价指标

在这里插入图片描述

6. 调度算法

在这里插入图片描述

在这里插入图片描述

  • 多级队列调度算法
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值