进程控制块

计算机操作系统第三章测试题及答案

你。 提交于 2019-12-02 10:03:24
大项 1 of 5 - 选择题 26.0/ 26.0 得分 题目 1 of 57 1.0/ 1.0 得分 在为多道程序所提供的可共享的系统资源不足时,可能出现死锁。但是,不适当的( )也可能产生死锁。 A. 进程推进顺序 B. 进程优先权 C. 分配队列优先权 D. 资源的线性分配 答案: A 题目 2 of 57 1.0/ 1.0 得分 采用资源剥夺法可解除死锁,还可以采用( )方法解除死锁。 A. 执行并行操作 B. 修改信号量 C. 拒绝分配新资源 D. 撤消进程 答案: D 题目 3 of 57 1.0/ 1.0 得分 产生死锁的四个必要条件是:互斥、( )、循环等待和不剥夺。 A. 请求与释放 B. 请求与保持 C. 请求与阻塞 D. 释放与阻塞 答案: B 题目 4 of 57 1.0/ 1.0 得分 发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏( )条件是不太实际的。 A. 不可抢占 B. 部分分配 C. 循环等待 D. 互斥 答案: D 题目 5 of 57 1.0/ 1.0 得分 在分时操作系统中,进程调度经常采用( )算法。 A. 先来先服务 B. 时间片轮转 C. 最高优先权 D. 随机 答案: B 题目 6 of 57 1.0/ 1.0 得分 资源的按序分配策略可以破坏( )的条件。 A. 互斥使用资源 B. 非抢夺资源 C.

Linux 进程IO杂项

佐手、 提交于 2019-12-02 08:49:55
Linux 进程IO杂项 本文结合一个 pwn 例题,在分析例题的过程中穿插介绍相关知识。 例题来源: PWNABLE.KR 网站, Toddler's Bottle 小节,习题 input 。 例题内容: Mom? How can I pass my input to a computer program? ssh input2@pwnable.kr -p 2222 (pw: guest). 连接服务器 对于这类提供了 SSH 连接地址的题,我们通常要连接到服务器并在服务器上按提示信息完成 pwn 。登录成功后,看到如下信息: ____ __ __ ____ ____ ____ _ ___ __ _ ____ | \| |__| || \ / || \ | | / _] | |/ ]| \ | o ) | | || _ || o || o )| | / [_ | ' / | D ) | _/| | | || | || || || |___ | _] | \ | / | | | ` ' || | || _ || O || || [_ __ | \| \ | | \ / | | || | || || || || || . || . \ |__| \_/\_/ |__|__||__|__||_____||_____||_____||__||__|\_||__|\_| - Site

进程上下文、中断上下文及原子上下文***

試著忘記壹切 提交于 2019-12-02 07:56:38
谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念: a -- 上下文 上下文是从英文 contex t翻译过来,指的是一种 环境 。相对于进程而言,就是进程执行时的环境; 具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。 b -- 原子 原子(atom) 本意是“不能被进一步分割的最小粒子”,而 原子操作(atomic operation )意为"不可被中断的一个或一系列操作" ; 一、为什么会有上下文这种概念 内核空间和用户空间是现代 操作系统 的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。 其中处理器总处于以下状态中的一种: 内核态 ,运行于 进程上下文 ,内核代表进程运行于内核空间; 内核态 ,运行于 中断上下文 ,内核代表硬件运行于内核空间; 用户态 ,运行于用户空间。   上下文的切换,用户空间和内核空间具有不同的 地址映射,通用或专用的寄存器组,而用户空间的进程要传递很多变量、参数给内核,内核也要保存用户进程的一些寄存器、变量等

Python进程、线程、协程详解

ぐ巨炮叔叔 提交于 2019-12-02 06:37:41
进程与线程的历史 我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配、任务的调度。 程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等。 每次执行程序的时候,都会完成一定的功能,比如说浏览器帮我们打开网页,为了保证其独立性,就需要一个专门的管理和控制执行程序的数据结构——进程控制块。 进程就是一个程序在一个数据集上的一次动态执行过程。 进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志。 在早期的操作系统里,计算机只有一个核心,进程执行程序的最小单位,任务调度采用时间片轮转的抢占式方式进行进程调度。每个进程都有各自的一块独立的内存,保证进程彼此间的内存地址空间的隔离。 随着计算机技术的发展,进程出现了很多弊端,一是进程的创建、撤销和切换的开销比较大,二是由于对称多处理机(对称多处理机(SymmetricalMulti-Processing)又叫SMP,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构

并发编程基础知识

二次信任 提交于 2019-12-01 20:28:02
一、进程的定义 狭义定义 进程是正在运行的程序的实例(an instance of a computer program that is being executed)。 广义定义 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元。在传统的操作系统中,进程即是基本的分配单元,也是基本的执行单元。 二、进程的概念 进程是一个实体。每一个进程都有他自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储活动过程调用的指令和本地变量。 进程是一个‘执行中的程序’。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,也就是进程。 三、进程的特征 动态性 进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。 并发性 任何进程都可以同其他进程一起并发执行 独立性 进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。 异步性 由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。 结构特征 进程由程序、数据和进程控制块三部分组成 四、进程的调度 先来先服务调度算法

多线程编程(1)

随声附和 提交于 2019-12-01 19:48:30
1. 进程与线程    通常,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个Word就启动了一个Word进程。大多时候一个进程需要同时干很多件事情,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。即 一个程序至少有一个进程,一个进程至少有一个线程 。    我们大学学操作系统的时候,都知道 进程是资源分配的基本单位,线程是执行和调度的基本单位,线程本身不拥有资源,资源来自于它的进程。 也就是说,进程在执行过程中有自己独立的内存空间,与其他进程相互隔离,因此进 程间的通信 需要另辟蹊径,比如常见的有管道通信、消息队列、信号量以及套接字等方法,同时,一个进程中有三大块——进程控制块(PCB)、数据段、代码段,这会导致进程间的会产生很大的开销。而线程与线程之间因为共享进程申请的内存区域,它们之间可以相互通信,因为线程的粒度小,使得线程的切换速度比进程快很多,可以极大地提高程序的运行效率,如下,是线程和进程的关系(图片摘自 知乎 )。    线程分为两种:用户线程和守护线程。守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分

day28

大憨熊 提交于 2019-12-01 19:45:22
一、什么是进程 进程: 正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 进程和程序的区别: 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 需要强调的是:同一个程序执行两次,那也是两个进程,比如打开暴风影音,虽然都是同一个软件,但是一个可以播郭德纲,一个可以播高晓松。 二、并行和并发 无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务 (一)并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发,并行也属于并发。 (二)并行:同时运行,只有具备多个cpu才能实现并行。 单核下,可以利用多道技术,多个核,每个核也都可以利用多道技术(多道技术是针对单核而言的)。 有四个核,六个任务,这样同一时间有四个任务被执行,假设分别被分配给了cpu1,cpu2,cpu3,cpu4, 一旦任务1遇到I/O就被迫中断执行,此时任务5就拿到cpu1的时间片去执行,这就是单核下的多道技术 而一旦任务1的I/O结束了,操作系统会重新调用它(需知进程的调度、分配给哪个cpu运行,由操作系统说了算),可能被分配给四个cpu中的任意一个去执行。 多道技术概念回顾:内存中同时存入多道(多个)程序,cpu从一个进程快速切换到另外一个,使每个进程各自运行几十或几百毫秒

进程、线程、协程的关系

自作多情 提交于 2019-12-01 17:25:31
参考来源: https://blog.csdn.net/chengqiuming/article/details/80573288      https://www.cnblogs.com/guolei2570/p/8810536.html 协程不是进程,也不是线程,它就是一个函数,一个特殊的函数——可以在某个地方挂起,并且可以重新在挂起处继续运行。所以说,协程与进程、线程相比,不是一个维度的概念。 一个进程可以包含多个线程,一个线程也可以包含多个协程,也就是说,一个线程内可以有多个那样的特殊函数在运行。但是有一点,必须明确,一个线程内的多个协程的运行是串行的。如果有多核CPU的话,多个进程或一个进程内的多个线程是可以并行运行的,但是一个线程内的多个协程却绝对串行的,无论有多少个CPU(核)。这个比较好理解,毕竟协程虽然是一个特殊的函数,但仍然是一个函数。一个线程内可以运行多个函数,但是这些函数都是串行运行的。当一个协程运行时,其他协程必须挂起。 一 协程与进程、线程的比较 虽然说,协程与进程、线程相比不是一个维度的概念,但是有时候,我们仍然需要将它们做一番比较,具体如下: 1 协程既不是进程,也不是线程,协程仅仅是一个特殊的函数,协程跟他们就不是一个维度。 2 一个进程可以包含多个线程,一个线程可以包含多个协程。 3 一个线程内的多个协程虽然可以切换,但是这多个协程是串行执行的

进程与线程

霸气de小男生 提交于 2019-12-01 10:00:19
任务调度(并发) 大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式, 也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。 由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换, 给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发。 进程 进程: 是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程, 是操作系统进行资源分配和调度的一个独立单位, 是应用程序运行的载体。 进程一般由程序、数据集合和进程控制块三部分组成: 程序:用于描述进程要完成的功能,是控制进程执行的指令集。 数据集合:是程序在执行时所需要的数据和工作区。 程序控制块(Program Control Block,简称PCB):包含进程的描述信息和控制信息,是进程存在的唯一标志。 进程具有的特征:   动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;   并发性:任何进程都可以同其他进程一起并发执行;   独立性:进程是系统进行资源分配和调度的一个独立单位;   结构性:进程由程序、数据和进程控制块三部分组成。 进程由: 内存空间(代码、数据、进程空间、打开的文件)。 一个或多个线程。 进程状态图 进程间切换 线程 简介: 在早期的操作系统中并没有线程的概念, 但是进程之间的切换开销较大

OS2 进程的描述与控制

心已入冬 提交于 2019-12-01 07:18:14
OS-2 进程的描述与控制 【进程的定义】: 进程(process)是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。它是系统进行资源分配和调度的基本单位。 【进程的特性】: 动态性:进程具有动态的地址空间,地址中间的大小和内容都是动态变化的。 并发性:指多个进程实体同存于内存中,且能够在一段时间内同时运行。 独立性:各进程的地址空间相互独立,除非采用进程间通信手段,否则不能相互影响。 异步性:指进程以各自独立的、不可预知的速度向前推进。 【进程的三种基本状态】: v 进程在从创建到终止的全过程中一直处于一个不断变化的过程。为了刻画进程的这个变化过程,所有操作系统都把进程分成若干种状态,约定各种状态间的转换条件。 就绪状态(Ready) :进程已获得除处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行的状态。 执行状态(Running): z 用户态(目态) z 系统态(内核态、管态) v 阻塞状态(Blocked):当进程由于等待I/O操作或进程同步等条件而暂停运行时,它处于阻塞状态。在条件满足之前,即使把处理器分配给该进程,它也是无法继续执行的。也称为“等待状态”、“封锁状态”、“睡眠状态”。 【具有挂起状态的进程状态转换】: 挂起操作的引入是因为操作系统中引入了虚拟内存技术,即将外存的一部分空间用作存放进程和数据程序等等