进程、线程和管程
这是三个看起来似乎比较容易混淆的概念,所以在复习的时候一定要牢记其定义和相互之间的区别。
*进程
进程是一个可并发执行的程序在一个数据集合上的运行过程。也就是说,它是运行中的程序,是程序的一次运行活动。在操作系统中,进程是进行系统资源分配、调度和管理的最小单位。
*线程
对于一些多线程程序来讲,其包含两条或两条以上并发运行的部分,每个部分就称作一个线程,每个线程都有独立的执行路径。线程是处理器分配资源的最小单位。
*管程
管程是一种并发性的构造,它包括用于分配一个共享资源或一组共享资源的数据和过程。为了完成分配资源的功能,进程必须调用特定的管程入口。
操作系统中,多任务处理一般有两种方式:基于进程和基于线程。基于进程的多任务处理的特点是允许计算机同时运行两个或更多的程序。而基于线程的多任务处理是指一个程序可以同时执行两个或者多个任务的功能。
多线程程序比多进程程序需要更少的管理费用。进程是重量级的任务,需要分配它们自己独立的地址空间。进程间的通信和相互转换需要很多的开销。而线程是轻量级的任务,它们共享相同的地址空间并且分享同一个进程。线程间的通信和转换开销要小很多。
二、信号量处理:
信号量和P-V操作
为了解决进程同步的问题,提出了信号量机制。这一机制取得了很大的发展,从整型信号量到记录型信号量,再进而发展为“信号量集”机制。不过,在原理上和考试中,一般我们都只涉及整型信号量机制。
对于互斥临界区的管理要求:
n 有空则进
n 无空等待
n 两者择一
n 有先等待
在整型信号量机制中,信号量被定义为一个整型变量,除初始化外,仅能通过两个标准的原子操作wait(s)和signal(s)来访问。其通常被分别称作P、V操作。描述如下:
P操作
I. S-1→S
II. 如果S<0,则该进程进入等待状态;否则继续进行
V操作
I. S+1→S
II. 如果S≥0,则唤醒队列中的一个等待进程
进程互斥的情况初值是1,而同步的初值是0
进程同步的问题相对来说是比较复杂的,这其中一些比较经典的进程同步问题,如:
*生产者—消费者问题
*读者—写者问题
*哲学家进餐问题
三、各种调度算法:
操作系统中,涉及到的调度比较多,如进程调度、作业调度、磁盘调度等。但是其调度算法的原理都大致相同。进程调度是比较典型的一类调度,其调度算法较多。包括:
*先来先服务
*优先数调度
*轮转法
*短作业优先
通过对这些调度算法的复习,对我们掌握其他种类调度的调度算法也会很有帮助。
例题: 一台 PC 计算机系统启动时,首先执行的是__(42)__,然后加载__(43)__。在设备管理中,虚拟设备的引入和实现是为了充分利用设备,提高系统效率,采用__(44)__来模拟低速设备(输入机或打印机)的工作。
例题:设有 7 项任务,分别标记为 a、b、c、d、c、f 和 g,需要若干台机器以并行工作方式来完成,它们执行的开始时间和完成时间如下表所示:
信号量例题:
在某超市里有一个收银员,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如下图所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0和n。这样图中的a应填写__C__,图中的b1、b2应分别填写__D_,图中的c1、c2应分别填写__A。 (操作系统)?
分享到:
相关推荐
某网络系统有N个工作线程和1个调度服务进程,作线 星初始化时 守候队列中等待;当用户请求到达时,由服务进程唤醒工作线程执;若工线程守候队列为空则则检查请求等待队列是否已满(最多可存放M个用户请求),未满则将...
某网络系统有N个工作线程和1个调度服务进程,作线 星初始化时 守候队列中等待;当用户请求到达时,由服务进程唤醒工作线程执;若工线程守候队列为空则则检查请求等待队列是否已满(最多可存放M个用户请求),未满则将...
允许多个Reader进程(或线程)同时读一个共享对象,不允许一个Writer进程(或线程)和其他Reader进程(或线程)或者Writer进程(或线程)同时访问共享对象。所谓读者—写者问题是指保证一个Writer(或线程)进程必须...
管程在操作系统中的作用越来越大,管程是一个不可缺少的部分,它的地位跟线程和进程的同等重要
该条件变量的生产者消费者问题管程和哲学家 问题管程,用多个使用管程的协作线程验证其 正确性。 实验3#用户进程和空间管理设计 实现了多道程序共驻内存,用户程序并发执行 ,实现了多个系统调用 (Fork,Exec,Join,...
主要介绍了进程的基本概念 进程控制 进程同步 经典进程的同步问题 管程机制 进程通信 线程
在Java领域中, 尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。其中: - 互斥(Mutual Exclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共...
03_进程线程管程.mp4 54.58M 04_用户线程和守护线程.mp4 26.81M 05_对Future的改进.mp4 114.57M 06_CompletableFuture.mp4 44.98M 07_CompletableFuture四个函数.mp4 102.29M 08_get和join方法.mp4 59.24M 09_...
5.4.1 管程和条件变量 127 5.4.2 Hanson方法实现管程 130 5.4.3 Hoare方法实现管程 135 5.5 消息传递 138 5.5.1 消息传递的概念 138 5.5.2 消息传递的方式 139 5.5.3 有关消息传递实现的若干问题 140 5.5.4 管道和套...
6.21 假设将管程中的wait和signal操作替换成一个单一的构件await(B),这里B是一个普通 的布尔表达式,进程执行直到B变成真 a. 用这种方法写一个管程实现读者—作者问题。 b. 解释为什么一般来说这种结构实现的...
进程同步是操作系统学习过程中非常重要的一部分内容,同时也非常困难,在学习了互斥锁、信号量及管程等原语后,其问题原理能够理解,但是实践中遇到相同问题时却无从下手,不能学以致用。本实验的目的是在理解了课本...
2.3.2进程的创建状态和退出状态 2.3.3进程的挂起状态 2.4进程的控制 2.4.l进程的创建 2.4.2进程的撤消 2.4.3进程的阻塞与唤醒 2.4.4进程的挂起与激活 2.5线程 2.5.l线程的概念 2.5.2线程与进程的比较 2.6本章基础...
进程管理:回顾进程的概念,生命周期(创建、就绪、运行、阻塞、结束),进程调度算法(先来先服务、短进程优先、时间片轮转、优先级调度等)以及进程同步与互斥问题的解决机制(信号量、管程、条件变量)。...
操作系统答案4全文共7页,当前为第1页。操作系统答案4全文共7页,当前为第1页。... 6.21 假设将管程中的wait和signal操作替换成一个单一的构件await(B),这里B是一个普通的布尔表达式,进程执行直
详细解释进程的互斥和同步机制,主要是信号量、管程,剖析经典的读写者问题 重点: 信号量机制、读写者问题 难点:信号量机制、读写者问题 第6章并发性:死锁和饥饿 着重讲述并发处理中通常需要解决的两个问题:死锁...
先来先服务调度算法,短作业(短进程、短线程)优先调度算法,时间片轮转 调度算法,优先级调度算法,高响应比优先调度算法,多级反馈队列调度算法。 (三)同步与互斥 1.进程同步的基本概念 2.实现临界区...
剖析现代操作系统,构 成操作系统的基本单位除内核之外,主要还有进程、线程、类程和管程。 1.内核 现代操作系统中大都采用了进程的概念,为了解决系统的并发性、共享性和随机性 ,并使进程能协调地工作,单靠...
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效...进程与线程第三章:Java 线程第四章:共享模型之管程第五章:共享模型之内存第六章:共享模型之无锁第七章:共享模型之不可变第八章:共享模型之工具
2.深入理解进程线程模型,深入理解进程同步机制,深入理解死锁概念及解决方案。 3.掌握存储管理基本概念,掌握分区存储管理方案,深入理解虚拟页式存储管理方案。 4.深入理解文件系统的设计、实现,以及提高文件...
3.3.1 先来先服务和短作业(进程)优先调度算法 91 3.3.2 高优先权优先调度算法 93 3.3.3 基于时间片的轮转调度算法 95 3.4 实时调度 97 3.4.1 实现实时调度的基本条件 97 3.4.2 实时调度算法的分类 99 ...