操作系统进程的描述与控制习题

1.什么是前趋图?为什么要引入前趋图?

前趋图(Precedence Graph)是一个有向无循环图,记为DAG(DirectedAcyclic Graph)
用于描述进程之间执行的前后关系

2.画出下面四条语句的前趋图
S1 = a: = x + y; S2 = b: = z + 1; S3 = c: = a - b; S4 = w: = c + 1;

![[Pasted image 20241104144540.png]]

3.什么程序并发执行会产生间断性特征?

程序在并发执行时:由于它们共享系统资源,
为完成同一项任务需要相互合作,致使这些并发执行的进程之间,形成了相互制约关系,
从而使得进程在执行期间出现间断性。

4.程序并发执行时为什么会失去封闭性和可再现性?

程序并发执行时:多个程序共享系统中的各种资源,
因而这些资源的状态由多个程序改变,
致使程序运行失去了封闭性,也会导致其失去可再现性。

5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?

为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。
影响:
使程序的并发执行得以更好运行。

6.试从动态性,并发性和独立性上比较进程和程序?
  1. 动态性:
    是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体。
  2. 并发性:
    是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
  3. 独立性:
    是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。
7.试说明PCB的作用,为什么说PCB是进程存在的唯一标志?

PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是:
使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
OS是根据PCB对并发执行的进程进行控制和管理的。

8.试说明进程在三个基本状态之间转换的典型原因。
  1. 就绪状态一执行状态:进程被调度
  2. 执行状态一就绪状态:时间片用完或者处理机被抢占
  3. 执行状态→阻塞状态:系统调用
  4. 阻塞状态一就绪状态:申请的资源被分配
9.为什么要引入挂起状态?该状态有哪些性质?

引入挂起状态处于五种不同的需要:

  1. 终端用户需要
  2. 父进程需要
  3. 操作系统需要
  4. 对换需要
  5. 负荷调节需要。
    处于挂起状态的进程不能接收处理机调度。
10.在进行进程切换时,所要保存的处理机状态信息有哪些?

进行进程切换时,所要保存的处理机状态信有:

  1. 进程当前暂存信息
  2. 下一指令地址信息
  3. 进程状态信息
  4. 过程和系统调用参数及调用地址信息
11.试说明引起进程创建的主要事件,

引起进程创建的主要事件有:

  1. 用户登录
  2. 作业调度
  3. 提供服务
  4. 应用请求
12.试说明引起进程被撤销的主要事件。

引起进程被撤销的主要事件有:

  1. 正常结束
  2. 异常结束(越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O故障)
  3. 外界干预(操作员或操作系统干预、父进程请求、父进程终止)。
13.在创建一个进程时所要完成的主要工作什么?
  1. OS发现请求创建新进程事件后,调用进程创建原语Creat();
  2. 申请空白PCB
  3. 为新进程分配资源
  4. 初始化进程控制块
  5. 将新进程插入就绪队列
14.在撤销一个进程时所要完成的主要工作是什么?
  1. 根据被终止进程标识符,从PCB集中检索出进程PCB,读出该进程状态
  2. 若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被终止后重新调度。
  3. 若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程
  4. 将被终止进程拥有的全部资源,归还给父进程,或归还给系统
  5. 将被终止进程PCB从所在队列或列表中移出,等待其它程序搜集信息
15.试说明引起进程阻塞或被唤醒的主要事件是什么?
  1. 请求系统服
  2. 启动某种操作
  3. 新数据尚未到达
  4. 无新工作可做
16.进程在运行时存在哪两种形式的制约?并举例说明之。
  1. 间接相互制约关系
    举例:有两进程A和B,如果A提出打印请求,系统已把唯一的一台打印机分配给了进程B,则进程A只能阻塞;一旦B释放打印机,A才由阻塞改为就绪。
  2. 直接相互制约关系
    举例:有输入进程A通过单缓冲向进程B提供数据。当缓冲空时,计算进程因不能获得所需数据而阻塞,当进程A把数据输入缓冲区后,便唤醒进程B;反之,当缓冲区已满时,进程A因没有缓冲区放数据而阻塞,进程B将缓冲区数据取走后便唤醒A
17.为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码?

为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,
如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,
如果正被访问,则本进程不能进入临界区,
实现这一功能的代码为”进入区"代码;
在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志,使其它进程能再访问此临界资源

18.同步机构应遵循哪些基本准则?为什么?

同步机构应遵循的基本准则是:

  1. 空闲让进
  2. 忙则等待
  3. 有限等待
  4. 让权等待
    原因:为实现各个进程互斥进入临界区。
19.试从物理概念上说明记录型信号量 wait 和 signal.
  1. wait(S):
    当S.value>0时,表示目前系统中这类资源还有可用的。
    执行一次wait操作,意味着进程请求一个单位的该类资源,使系统中可供分配的该类资源减少一个,因此描述为 S.value = S.value-1;
    当 S.value<0 时,表示该类资源已分配完毕,
    进程应调用block原语自我阻塞,放弃处理机,并插入到信号量链表 S.L中。
  2. signal(S):
    执行一次signal操作,意味着释放一个单位的可用资源,使系统中可供分配的该类资源数增加一个,故执行 S.value = S.value+1 操作。
    若加1后S.value <= 0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用 wakeup原语,将S.L链表中的第一个等待进程唤醒。
20.你认为整型信号量机制是否完全遵循了同步机构的四条准则?

整型信号量机制不完全遵循同步机制的四条准则,
它不满足“让权等待"准则

21.如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之

为使多个进程互斥访问某临界资源,
只需为该资源设置一互斥信号量mutex,并设其初值为 1,然后将各进程访问该资源的临界区CS置于 wait(mutex)和signal(mutex)操作之间即可。

  1. 每个欲访问该临界资源的进程在进入临界区之前,都要先对mutex执行wait操作,
    若该资源此刻未被访问,本次wait操作必然成功,进程便可进入自己的临界区,
    这时若再有其他进程也欲进入自己的临界区,此时由于对mutex执行wait操作定会失败,因而该进程阻塞,从而保证了该临界资源能被互斥访问。
  2. 当访问临界资源的进程退出临界区后,应对mutex执行signal操作,释放该临界资源。
    利用信号量实现进程互斥的进程描述如下:
Var mutex semaphore = 1;
beginparbeginprocess 1:begin repeatwait (mutex);critical sectionsignal (mutex);remaindersection untilfalse:
endprocess 2:begin repeatwait (mutex);critical sectionsignal (mutex);remaindersection untilfalse
endparend
22.说明管程由哪几部分组成,为什么要引入条件变量?

管程由四部分组成:

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

当一个进程调用了管程,在管程中时被阻塞或挂起,直到阻塞或挂起的原因解除,
而在此期间,如果该进程不释放管程,则其它进程无法进入管程,被迫长时间地等待。
为了解决这个问题,引入了条件变量 condition。

23.试比较进程间的低级与高级通信工具。

用户用低级通信工具实现进程通信很不方便,效率低,通信对用户不透明,所有操作都必须由程序员来实现,
而高级通信工具弥补了这些缺陷,用户直接利用操作系统提供的一组通信命令,高效地传送大量的数据。

24.当前有哪几种高级通信机制?
  1. 共享存储
  2. 消息传递
  3. 管道通信
25.消息队列通信机制有哪几方面的功能?
  1. 构成消息
  2. 发送消息
  3. 接收消息
  4. 互斥与同步
26.为什么要在OS中引入线程?

在操作系统中引入线程,则是

  1. 为了减少程序在并发执行时所付出的时空开销
  2. 使OS具有更好的并发性,
  3. 提高CPU 的利用率。
    进程是分配资源的基本单位,而线程购是系统调度的基本单位。
27.试说明线程具有哪些属性?
  1. 轻型实体
  2. 独立调度和分派的基本单位
  3. 可并发执行
  4. 共享进程资源
28.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较
  1. 调度性
    线程在OS中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
  2. 并发性
    进程可以并发执行,一个进程的多个线程也可并发执行。
  3. 拥有资源
    进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本身基本不拥有系统资源,但可以访问隶属进程的资源。
  4. 系统开销
    操作系统在创建、撤消和切换进程时付出的开销显著大于线程
29.为了在多线程OS中实现进程之间的同步与通信,通常提供了哪几种同步机制?

同步功能可以控制程序流并访问共享数据,从而并发执行多个线程。
共有四种同步模型:

  1. 互斥锁
  2. 读写锁
  3. 条件变量
  4. 信号
30.用于实现线程同步的私用信号量和公用信号量之间有何差别?
  1. 私用信号量
    当某线程需利用信号量实现同一进程中各线程之间的同步时可调用创建信号量的命令来创建一个私用信号量,其数据结构存放在应用程序的地址空间中。
  2. 公用信号量
    公用信号量是为实现不同进程间或不同进程中各线程之间的同步而设置的。其数据结构是存放在受保护的系统存储区中,由OS为它分配空间并进行管理。
31.何谓用户级线程和内核支持线程?
  1. 用户级线程:
    仅存在于用户空间中的线程,无须内核支持。
    这种线程的创建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。
    用户级线程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持
  2. 内核支持线程:
    在内核支持下运行的线程。
    无论是用户进程中的线程,还是系统线程中的线程,其创建、撤销和切换等都是依靠内核,在内核空间中实现的。
    在内核空间里还为每个内核支持线程设置了线程控制块,内核根据该控制块感知某线程的存在并实施控制。
32.试说明用户级线程的实现方法

用户级线程是在用户空间中的实现的,运行在“运行时系统”与”内核控制线程”的中间系统上。
运行时系统用于管理和控制线程的函数的集合。
内核控制线程或轻型进程LWP可通过系统调用获得内核提供服务,利用LWP进程作为中间系统。

33.试说明内核支持线程的实现方法

系统在创建新进程时,分配一个任务数据区PTDA,其中包括若干个线程控制块TCB空间。
创建一个线程分配一个TCB,有关信息写入TCB,为之分配必要的资源。
当PTDA中的TCB用完,而进程又有新线程时,只要所创建的线程数目未超过系统允许值,系统可在为之分配新的TCB
在撤销一个线程时,也应回收线程的所有资源和TCB。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/463898.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三十一章 Vue之路由(VueRouter)

目录 一、引言 1.1. 路由介绍 二、VueRouter 三、VueRouter的使用 3.1. 使用步骤&#xff08;52&#xff09; 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. Friend.vue 3.2.4. My.vue 3.2.5. Find.vue 一、引言 1.1. 路由介绍 Vue中路由就是路径和组件的映…

精准选型跨境客服,网页服务更高效

跨境网页客服系统选型需考虑语言、功能、友好性及合规性。ZohoSalesIQ凭多语言支持、友好界面、移动兼容及数据保障成为优选&#xff0c;助力企业提升客户体验、高效沟通并满足数据安全需求。 一、跨境网页客服系统的重要性 1、提升客户体验 在跨境电商中&#xff0c;客户体验…

Pinia-状态管理

Pinia-状态管理 特点&#xff1a; 1. 轻量和模块化 Pinia 是一个轻量级的状态管理库&#xff0c;支持模块化管理&#xff0c;即可以将应用的状态分成多个 store 以实现更好的组织。使用 Pinia&#xff0c;可以定义多个 store&#xff0c;每个 store 都是一个独立的模块&#x…

【C++】对左值引用右值引用的深入理解(右值引用与移动语义)

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 天高地阔&#xff0c;欲往观之。 ​ 目录 前言&#xff1a;对引用的底层理解 一、左值与右值 提问&#xff1a;左值在左&#xff0c;右值在右&#xff1f;…

go 聊天系统项目-1

1、登录界面 说明&#xff1a;这一节的内容采用 go mod 管理【GO111MODULE‘’】模块&#xff0c;从第二节开始使用【GO111MODULE‘off’】GOPATH 管理模块。具体参见 go 包相关知识 1.1登录界面代码目录结构 代码所在目录/Users/zld/Go-project/day8/chatroom/ 1.2登录界…

Balluff EDI 项目需求分析

电子数据交换&#xff08;EDI&#xff0c;Electronic Data Interchange&#xff09;是一种通过电子方式在不同组织之间交换商业文档的技术和标准。它涉及使用标准格式的电子文档&#xff0c;如订单、发票、运输单据等&#xff0c;以实现自动化的数据传输。这种技术通常依赖于专…

如何在 Ubuntu 上安装和配置 GitLab

简介 GitLab是一个开源应用程序&#xff0c;主要用于托管 Git 仓库&#xff0c;并提供与开发相关的附加功能&#xff08;如问题跟踪&#xff09;。GitLab 可由用户自己的基础架构托管&#xff0c;可灵活部署为开发团队的内部存储库、与用户对接的公共方式或供稿者托管自己项目…

c语言-常量和变量

文章目录 一、常量是什么&#xff1f;&#xff08;1&#xff09;整型常量&#xff1a;&#xff08;2&#xff09;实型常量&#xff1a;&#xff08;3&#xff09;字符常量&#xff1a;&#xff08;4&#xff09;字符串常量&#xff08;5&#xff09;地址常量 二、define 和 con…

【Linux】进程间通信(匿/命名管道、共享内存、消息队列、信号量)

文章目录 1. 进程通信的目的2. 管道2.1 原理2.2 匿名管道2.3 管道通信场景&#xff1a;进程池2.4 命名管道 3. System V共享内存3.1 操作共享内存3.2 使用共享内存通信 4. System V 消息队列&#xff08;了解&#xff09;5. System V 信号量&#xff08;了解&#xff09;5.1 信…

VirtualBox 解决虚拟机Cable Unplugged 无法上网问题

问题描述 VirtualBox 中的虚拟机无法上网&#xff0c;在虚拟机中查看网络设置显示 Cable Unplugged。 解决方案 选择VirtualBox 上方任务栏的控制->设置->网络&#xff0c;勾选接入网线即可解决。

大学适合学C语言还是Python?

在大学学习编程时&#xff0c;选择C语言还是Python&#xff0c;这主要取决于你的学习目标、专业需求以及个人兴趣。以下是对两种语言的详细比较&#xff0c;帮助你做出更明智的选择&#xff1a; C语言 优点&#xff1a; 底层编程&#xff1a;C语言是一种底层编程语言&#x…

【深入浅出】深入浅出Bert(附面试题)

本文的目的是为了帮助大家面试Bert&#xff0c;会结合我的面试经历以及看法去讲解Bert&#xff0c;并非完整的技术细致讲解&#xff0c;介意请移步。 深入浅出】深入浅出Bert&#xff08;附面试题&#xff09; 网络结构Pre-TrainingFine-Tuning 输入编码词向量编码句子编码位置…

thrift rpc 四种类型的服务端的实现详细介绍

thrift rpc 四种类型的服务端的实现详细介绍 这里主要是使用 thrift 开发的时候服务器端的实现&#xff0c;以及 thrift 提供给我们多钟的服务的实现&#xff0c;以及每个实现的服务器的特点和 API 介绍&#xff0c;TServer 主要包含以下几种实现 TSimpleServer 阻塞的但线程…

Python | Leetcode Python题解之第530题二叉搜索树的最小绝对差

题目&#xff1a; 题解&#xff1a; # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def isValidBST(self, root):"…

[Prometheus学习笔记]从架构到案例,一站式教程

文章目录 Prometheus 优势Prometheus 的组件、架构Prometheus Server 直接从监控目标中或者间接通过推送网关来拉取监控指标&#xff0c;它在本地存储所有抓取到的样本数据&#xff0c;并对此数据执行一系列规则&#xff0c;以汇总和记录现有数据的新时间序列或生成告警。可以通…

抓住亚马逊、shein新品扶持期,利用测评提升搜索排名与销量

亚马逊的卖家们应该意识到&#xff0c;新发布的产品在上线后的2到4周内&#xff0c;通常会获得平台的流量支持。这一阶段被称为“新品流量黄金期”&#xff0c;在此期间&#xff0c;产品的搜索排名和曝光率通常会比平时更高。因此&#xff0c;如何有效利用这一阶段&#xff0c;…

轻松入门WordPress:在Ubuntu上搭建本地网站并配置公网访问地址

文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式&#xff1a;4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站&#xff0c…

华为云计算知识总结——及案例分享

目录 一、华为云计算基础知识二、华为云计算相关案例实战案例一&#xff1a;搭建弹性云服务器&#xff08;ECS&#xff09;并部署Web应用案例二&#xff1a;构建基于OBS的图片存储和分发系统案例三&#xff1a;基于RDS的高可用数据库应用案例四&#xff1a;使用华为云DDoS防护保…

银行金融知识竞赛活动策划方案

根据《中国人民银行**市中心支行“创新金融服务&#xff0c;支持经济发展”业务竟赛活动实施方案》安排&#xff0c;中支决定于9月28日举办**市人民银行系统“创新金融服务&#xff0c;支持经济发展”现场业务竞赛&#xff0c;为确保业务竞赛组织工作顺利开展&#xff0c;特制定…

动态规划 01背包(算法)

现有四个物品&#xff0c;小偷的背包容量为8&#xff0c;怎么可以偷得价值较多的物品 如: 物品编号&#xff1a; 1 2 3 4 物品容量&#xff1a; 2 3 4 5 物品价值&#xff1a; 3 4 5 8 记f(k,w) ,当背包容量为w,可以偷k件物品…