实现单处理机下的进程调度程序_操作系统(2)进程与线程

1.基本概念

程序:就是一个指令序列。

随着计算机的发展,计算机从单道程序发展到多道程序。

系统为每个进程配置一个数据块,称为程序控制块(PCB),用来描述进程的各种信息。

PCB,程序段,数据段三部分构成了进程实体。

创建进程,实质上就是创建进程实体中的pcb,撤销进程,实际上就是撤销进程实体中的PCB,PCB是进程存在的唯一标志

  1. 程序段:存放代码本身。
  2. 数据段:程序运行中使用,产生的运算数据。
  3. PCB:操作系统通过PCB来管理进程,因此PCB中包含操作系统对其进行管理所需要的各种信息。

PCB中包含的信息:

  • 进程描述信息
  1. 进程标识符PID
  2. 用户标识符UID
  • 进程控制和管理信息
  • 资源分配清单
  • 处理机相关信息:各种寄存器值

进程的组织:多个进程之间的组织方式

  • 链接状态:执行指针,就绪队列指针,阻塞队列指针。
  • 索引方式:指针指向索引表

2.进程的状态与转换

进程是能够独立运行,独立获取资源,独立接受调度的基本单位。

2fbe7399ee6ae05c914f35832e3a0424.png
  • 运行态到阻塞态是一种进程自身做出的主动行为。
  • 阻塞态到运行态不是进程能控制的,是一种被动行为。
  • 阻塞态不能直接转换为运行态,也不能直接从就绪态转换为阻塞态。

3.进程控制

进程控制的主要功能是对系统中所有进程实施有效管理,它具有创建进程,撤销已有进程,实现进程状态转换等功能。实现各种进程状态之间的转换。

原语:执行期间不允许被中断。采用关中断开中断指令实现,只允许在核心态下执行的特权指令。

创建原语,撤销原语,阻塞原语,唤醒原语,切换原语。

进程因什么而阻塞,就因什么而唤醒

4.进程通信

各个进程拥有的内存地址空间是相互独立的,一个进程不能直接访问另一个进程的地址空间。

共享存储:两个进程对共享空间的访问是互斥的。

  1. 基于数据结构的共享:低级通信方式
  2. 基于存储区的共享:高级通信方式

消息传递:格式化消息为单位传递。用发送信息/接收信息两个原语进行数据交换。

管道通信:固定大小的缓冲区,半双工通信。各个进程要互斥的访问管道。管道写满时,不能再写,管道读空时,不能再读。

5.线程概念

引入线程之后,线程成了程序执行流的最小单位。进程是资源分配的基本单位,线程是调度的基本单位。每个线程都有一个线程ID,和线程控制块TCB。

同一个进程中的不同线程共享进程的资源。线程几乎不拥有系统资源,由于共享内存地址空间,同一进程的线程通信无需系统的干预。同一进程中的线程切换,不会引起进程切换,不同进程间的线程切换,会引起进程切换,切换同进程中的线程,系统开销很小。

线程的实现方式:用户级线程与内核级线程

用户级线程:由应用程序通过线程库实现。线程管理工作由应用程序负责,线程切换可以在用户态下即可完成。对内核来说是透明的。

内核级线程:线程管理由内核负责。

c1ec743d7d3527a91a510e1866d45dd7.png

内核级线程才是处理机分配的单位。

多线程模型:在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”的问题。

多对一模型,一对一模型,多对多模型。多对多模型克服了一对一模型中一个用户进程占用太多内核级线程开销太大的缺点,同时有较高的并发性。

6.处理机调度的概念、层次

调度:由于资源有限,按照某种规则处理决定任务的顺序。

  1. 高级调度:作业调度外存与内存之间的调度,面向作业。每个作业只调入一次,调出一次,调入的时候创建相应的PCB。
  2. 中级调度:内存调度外存内存之间的调度,面向进程。引入虚拟内存之后,可以将暂时不能运行的进程调至外存等待,提高了内存的利
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现了如下四种调度算法的模拟: (1)时间片轮转调度 (2)优先数调度 (3)最短进程优先 (4)最短剩余时间优先 模拟过程使用了JProgressBar作为进程状态条,更为直观地观察到每个进程的执行状态。 程序用户说明: 1、在上图标号1处输入要创建随机进程的个数,仅可输入正数,非正数会有相关提示。然后点击标号2处的“创建进程”按钮,随进创建的进程显示在程序界面的中央窗口,如标号3所示。 2、创建好随机进程后,在标号4的选框选择将要模拟执行的调度算法,然后点击标号5处的“开始模拟”,程序开始执行。标号3的列表会显示相应的调度变化。 3、模拟过程中,可以继续添加新的进程,操作同上。 4、 一个算法模拟执行完毕之后,可以点击标号6的“复位”按钮,可以重置列表的内容为程序模拟运行前的内容。复位成功后,可以继续选择其他调度算法进行模拟。 5、标号7显示为程序模拟过程中的时间,从1秒开始累计。 6、点击标号8的“清空”按钮,可以清空类别的进程,以便程序的下次执行。 题目要求: 题目四 处理器系统的进程调度 一 、 课 程 设 计 目 的 1. 加深对进程概念的理解, 明确进程程序的区别。 2. 深入了解系统如何组织进程、 创建进程。 3. 进一步认识如何实现处理器调度。 二 、 课 程 设 计 内 容 编写程序完成处理器系统中的进程调度, 要求实现时间片轮转、 优先数、 最短进程优 先和最短剩余时间优先四种调度算法。 实验具体包括: 首先确定进程控制块的内容, 进程控 制块的组成方式; 然后完成进程创建原语和进程调度原语; 最后编写主函数对所作工作进行 测试。 模拟程序只对你所设置的“ 虚拟 PCB” 进行相应的调度模拟操作, 即每发生“ 调度” 时, 显示出当前运行进程的“ 进程标识符”、“ 优先数”、“ 剩余运行时间” 等, 而不需要对系 统中真正的 PCB 等数据进行修改。
1. 系统资源管理: 进程线程都是操作系统中的执行位。进程操作系统分配资源的基本位,包括内存空间、文件句柄、系统配置等。每个进程都有自己的地址空间,不同的进程之间不能直接共享资源。而线程是在进程内部运行的,它们共享进程的资源,包括内存空间、文件句柄、系统配置等。因此,线程的创建和切换比进程更快,但是线程的并发控制更加复杂。 2. 处理机调度: 进程线程都需要在处理机上运行。在多道程序环境下,操作系统需要对各个进程线程进行调度,保证它们都能得到足够的CPU时间片。进程的调度比线程的调度更为复杂。因为操作系统需要考虑进程的优先级、进程的状态(就绪、运行、阻塞等)、进程的资源需求等因素。而线程只有就绪和运行两种状态,因此线程的调度相对简。 3. 资源利用率: 由于线程共享进程的资源,因此创建线程比创建进程更加节省资源。同样的,线程的切换也比进程更加快速。因此,在多线程环境下,资源利用率会更高。 4. 优势: 进程的优势在于它们之间相互独立,不会互相影响。而线程的优势在于它们之间可以共享数据,因此对于需要并发处理的任务,使用线程可以更加高效。此外,线程的创建和切换比进程更加快速,因此在多线程环境下,系统的响应速度更快。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值