进程控制块

计算机四级操作系统-3-进程线程模型

本小妞迷上赌 提交于 2020-03-16 18:29:25
第3章 进程线程模型 操作系统中最核心的概念是进程,这是对正在运行程序的一个抽象。操作系统的其他所有 内容都是围绕着进程的概念展开的,所以,透彻地理解进程是非常重要的。即使可以利用的 CPU 只有一个,但是通过进程,可以使系统具有支持并发操作的能力,可将一个单独的 CPU 变换 成多个虚拟的 CPU 。 本章通过大量的细节探究进程,以及进程中的运行实体 —— 线程。 3.1多道程序设计模型 采用多道程序设计可以提高 CPU 的利用率。多道程序设计技术充分发挥了处理器与外围 设备以及外围设备之间的并行工作能力,从而提高处理器和其他各种资源的利用率。下面从程 序的顺序执行、程序的执行环境和程序的并发执行几方面介绍多道程序设计模型。 3.1.1 程序的顺序执行 程序是一个在时间上按严格次序前后相继的操作序列,这些操作是机器指令或高级语言编 写的语句。人们习惯的传统程序设计方法是顺序程序设计,计算机也是以顺序方式工作的 : CPU 一次执行一条指令,对内存一次访问一个字节或字,对外部设备一次传送一个数据块。顺序处理 也是人们习惯的思考方法,为了解决一个复杂的问题,人们把它分解成一些较为简单、易于分析 的小问题,然后逐个解决。也可以把一个复杂的程序划分为若干个程序段,然后按照某种次序逐 个执行这些程序段。 我们把一个具有独立功能的程序独占 CPU 直到得到最终结果的过程称为程序的顺序执行。

java多线程(一)多线程基础

孤街浪徒 提交于 2020-03-15 17:13:12
转自: 平凡希 老师 https://www.cnblogs.com/xiaoxi/p/5845016.html 一、进程 进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中的程序,并且具有一定独立功能。描述进程的有一句话非常经典—— 进程是系统进行资源分配和调度的一个独立单位。   进程是系统中独立存在的实体,拥有自己独立的资源,拥有自己私有的地址空间 。 进程的实质,就是程序在多道程序系统中的一次执行过程,它是动态产生,动态消亡的,具有自己的生命周期和各种不同的状态。进程具有并发性,它可以同其他进程一起并发执行,按各自独立的、不可预知的速度向前推进。  (注意,并发性(concurrency)和并行性(parallel)是不同的。并行指的是同一时刻,多个指令在多台处理器上同时运行。并发指的是同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,看起来就好像多个指令同时执行一样。)   进程由 程序 、 数据 和 进程控制块 三部分组成。 二、线程 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC)

北航软件学院复试专业课知识点梳理(操作系统部分)

孤街浪徒 提交于 2020-03-12 07:35:46
1.并发是指一段时间运行多个程序,并行是同一时刻多个指令,并行一般需要硬件支持,并发是通过进程线程实现的 2.共享是指系统中的资源可以被多个并发进程共同使用 3.虚拟技术把一个物理实体转换为多个空间实体,分为时分复用(多进程并发)和空分复用(虚拟内存) 4.操作系统基本功能: 1)进程管理 (进程控制,进程同步,进程通信,死锁处理) 2)内存管理 (内存分配,地址映射,内存保护与共享,虚拟内存) 3)文件管理 (文件存储空间管理、目录管理、读写管理和保护) 4)设备管理 (缓冲管理、设备分配、虚拟设备、设备处理) 5.进程控制块(Process Control Block,PCB)描述进程基本信息和运行状态,所谓的创建进程和撤销进程,都是对PCB的描述。 6.进程是资源分配的基本单位,线程是独立调度的基本单位 7.进程调度算法 1)批处理系统 由于没有过多用户操作,因此需要保证吞吐量和周转时间 a.FCFS b.SJF c.SRTN(最短剩余时间优先) 2)交互式系统 由于有大量用户操作,因此目的是快速相应 a.时间片轮转 b.优先级调度(可以随着时间推移增加优先级) c.多级反馈队列(每个队列时间片不同,如1,2,4,8) 8.经典同步问题 生产者-消费者 读者-写者 哲学家就餐 9.进程间通信(IPC) 1)管道pipe,支持半双工通信(单向传输),只能在父子进程汇总使用 2

操作系统第二章笔记

社会主义新天地 提交于 2020-03-10 06:23:36
进程的描述与控制 2.1 前趋图和程序执行 前趋图:有限无循环图,可记为DAG,它用于描述进程之间执行的先后顺序。途中的每个节点可用来表示程序或程序段,乃至一条语句,节点间的邮箱变啧表示两个节点之间存在的偏序或前趋关系。 初始节点:没有前驱的结点 终止节点:没有后继的结点 每个节点具有一个重量,用于表示该结点所含有的程序量或程序的执行时间。 注意:前趋图中是不允许有循环的 程序的顺序执行: 即使是一个程序段,也可能存在执行顺序问题 程序的顺序执行的特征: 1.每一个操作必须在下一个操作开始之前结束 2.程序执行过程中,其执行结果不受外界因素影响 程序并发执行 因为系统资源的利用率很低,所以引入多到程序技术,是程序或者程序段能并发执行,只有在不存在前去关系的程序之间才有可能并发执行 2.2进程的描述 为了使参与并发执行的每个程序都能独立的运行,在操作系统中必须为之配置一个专门的数据结构,进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程,由程序段、相关的数据段和PCB三部分便构成了进程实体 进程的特征 (1)动态性:进程的实质是进程实体的执行过程 (2)并发性 (3)独立性 (4)异步性 进程的三种基本状态: (1)就绪状态 (2)执行状态 (3)阻塞状 PCB的作用是使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位 (1

进程、线程、协程之概念理解+线程和进程各自有什么区别和优劣

给你一囗甜甜゛ 提交于 2020-03-10 06:09:31
一、概念 首先,根据图了解一下串行,并行和并发的基本概念:   1、进程    资源分配的基本单位 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 Linux系统函数fork()可在父进程中创建一个子进程,在父进程接到新请求时,复制出一个子进程来处理,即父进程监控请求,子进程处理,实现并发处理。注意:必须是Linux系统,windows不能用fork。 组成 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 特征 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的

操作系统面试常常问到的问题

拥有回忆 提交于 2020-03-09 23:50:56
什么是操作系统?它的功能和特征? 操作系统就是管理和控制计算机硬件和软件资源的程序,它的管理功能有: 进程管理 内存管理 文件管理 I/O管理 操作系统是用户与硬件之间的接口,也是硬件和软件之间的接口。 操作系统的四大特征: 并发:两个或多个进程在同一时间间隔内发生,注意和并行的区别。 共享:系统中的资源可供多个并发执行的进程使用。 虚拟:把一个物理实体,变为若干个逻辑上的对应物,如虚拟处理器、虚拟内存、虚拟外部设备。 异步:由于多个程序并发执行和资源有限,进程执行是走走停停的。 什么是管态和目态?为什么要区分管态和目态? 管态:特权态/系统态/核心态,处于管态的程序可以访问计算机任何资源,访问权限不受限制。通常操作系统在管态运行。 目态:常态/用户态,处于目态的程序只能执行非特权指令,不能直接使用系统资源,不能改变CPU工作状态,且只能访问本程序的存储空间。 区分管态和目态的目的:出于安全考虑,保护操作系统程序。内核程序是用户程序的管理者,需要执行一些特权指令,如I/O指令,中断指令等,特权指令不允许用户直接使用。 如何从目态切换到管态 系统调用:使用中断机制,用户态的进程通过系统调用申请使用操作系统提供的服务程序,主动要求切换到内核态。 异常:CPU运行用户态进程时,发生异常,例如缺页,则会切换到处理当前异常的内核程序中。 I/O中断:I/O设备完成用户请求的操作后

操作系统CPU调度知识点

橙三吉。 提交于 2020-03-08 16:06:14
1、 进程基本概念 :进程是程序的一次运行。 是系统进程资源分配和调度的基本单位。 2、进程三态:运行状态、就绪状态、堵塞状态。三态转换规则, 就绪状态 的进程因为调度进程 运行状态 , 运行状态 因为时间片用完而进入 就绪状态 ,因为I/O请求而进入 堵塞状态 。I/O完毕后进入 就绪状态。 创建完毕直接进入 就绪状态 。等待处理机调度。 3、 挂起状态引入原因 :1)终端用户请求。2)父进程请求,3)负荷调节须要,4)操作系统须要。 原三态进一步能够分为:运行状态、活动就绪状态、精巧就绪状态、活动堵塞状态、精巧堵塞状态;处于活动态的进程因为挂起请求而进行精巧状态。 进程创建完毕可直接进入活动就绪状态和精巧就绪状态。程序运行结束就可以进入终止状态。 4、 进程控制块(PCB) :进程标识符、处理机状态、进程调度信息、进程控制信息(程序、数据、资源清单等)。PCB是进程存在的唯一标志。 5、创建进程 创建进程的可能原因:用户登录、作业调度、提供服务、应用请求等。 创建进程过程:1)申请空白PCB,2)为进程分配资源,3)初始化PCB。4)将新进程插入到就绪队列。 6、终止进程 终止进程原因:正常结束、异常结束、外界干预等。 终止进程过程:1)依据进程标识符。在PCB集合中找到目标进程,2)终止该进程的运行,3)撤销其子进程,4)归还系统资源。5)撤销PCB。 7、进程同步概念

Linux父子进程

帅比萌擦擦* 提交于 2020-03-08 13:04:00
一、fork函数   Linux系统中创建进程需要消耗较大资源,所以使用fork函数生成一个子进程,子进程的PCB(进程控制块)会复制父进程的数据! #include <sys/types.h> #include <unistd.h> #include <stdio.h> int main(int argc, char const *argv[]) { printf("%d\n", getppid()); pid_t p1 = fork(); if(p1 > 0) {          //父进程 printf("parent pid = %d, p1 = %d\n", getpid(), p1); } else {          //子进程 printf("son pid = %d , ppid = %d, p1 = %d\n", getpid(), getppid(), p1); } return 0; }   这是fork的简单应用,在运行fork()就生成了了一个子进程,父子进程运行的代码是相同的!fork之后的代码在两个进程中运行!    所以fork函数会在父子进程中分别返回,在父进程中返回子进程的pid,而在子进程中会返回0!所以可以根据判断在父子进程中运行不同的代码! 二、僵尸进程和孤儿进程   在进程结束后,Linux系统会自动回收进程消耗的 内存和IO

程序、任务、进程和线程的联系与区别

大兔子大兔子 提交于 2020-03-08 10:37:56
概念: 程序(program)只是一组指令的有序集合。 任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。   进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。   在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。   线程(tread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈

操作系统的基本特征

ε祈祈猫儿з 提交于 2020-03-08 08:26:44
转自百度知道 https://zhidao.baidu.com/question/1493972177685493419.html 操作系统有四个基本特征 , 如下: 1.并发(concurrence) 并行性与并发性这两个概念是既相似又区别的两个概念。并行性是指两个或者多个事件在同一时刻发生,这是一个具有微观意义的概念,即在物理上这些事件是同时发生的;而并发性是指两个或者多个事件在同一时间的间隔内发生,它是一个较为宏观的概念。在多道程序环境下,并发性是指在一段时间内有多道程序在同时运行,但在单处理机的系统中,每一时刻仅能执行一道程序,故微观上这些程序是在交替执行的。 应当指出,通常的程序是静态实体,它们是不能并发执行的。为了使程序能并发执行,系统必须分别为每个程序建立进程。进程,又称任务,简单来说,是指在系统中能独立运行并作为资源分配的基本单位,它是一个活动的实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要运行时需要一定的资源,如 cpu,存储空间,及 i/o设备 等。在 操作系统 中引入进程的目的是使程序能并发执行。 2.共享 (sharing) 所谓共享是指,系统中的资源可供内存中多个并发执行的进程共同使用。由于资源的属性不同,故多个进程对资源的共享方式也不同,可以分为:互斥共享方式 和 同时访问方式 3.虚拟 (virtual)