进程控制块

python 进程

自作多情 提交于 2019-12-05 16:33:53
理论 什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。[3] 进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况

Lab4\\5:进程和线程

大城市里の小女人 提交于 2019-12-05 07:29:19
进程的定义 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 源代码在经过编译链接之后生成了可执行文件,再由操作系统进行加载并且进行一些堆栈的分配才是进程 进程控制块 操作系统管理控制进程运行所用的信息集合 操作系统用PCB来描述进程的基本情况以及运行变化的过程 PCB是进程存在的唯一标志 每个进程都在操作系统中有一个对应的PCB 进程控制块主要包含的就是进程的标识信息,处理机现场保存和进程控制信息 控制信息 : 调度和状态信息 进程间通信信息 存储管理信息 进程所用资源 有关数据结构连接信息 进程的生命周期 进程创建 用户请求创建一个新进程,正在运行的进程执行了创建进程的系统调用,并且加入到就绪队列 进程执行 内核对就绪队列进行调度,到执行该进程 进程等待 运行中的进程可能会进入阻塞状态,比如进行IO的等待或者需要的数据没有到达 进程抢占 运行中的进程可能时间片被用完或者高优先级进程被唤醒导致了进程被抢占进入阻塞状态 进程唤醒 被阻塞需要的资源可以被满足就可能被唤醒进入就绪队列 进程结束 进程完成任务或者被迫结束 线程的定义 线程是进程的一部分,描述指令流执行状态。它是进程中的指令执行流的最小单元,是CPU调度的基本单位。 进程作为资源分配角色 进程由一组相关资源构成,包括地址空间(代码段、数据段)、打开的文件等各种资源 线程作为处理机调度角色

Linux进程调度原理

送分小仙女□ 提交于 2019-12-05 07:23:52
Linux进程调度原理 Linux进程调度的目标     1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效;     2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间;     3.保证公平和避免饥渴;     4.SMP调度:调度程序必须支持多处理系统;     5.软实时调度:系统必须有效的调用实时进程,但不保证一定满足其要求; Linux进程优先级   进程提供了两种优先级,一种是普通的进程优先级,第二个是实时优先级。前者适用SCHED_NORMAL调度策略,后者可选SCHED_FIFO或SCHED_RR调度策略。 任何时候,实时进程的优先级都高于普通进程 ,实时进程只会被更高级的实时进程抢占,同级实时进程之间是按照FIFO(一次机会做完)或者RR(多次轮转)规则调度的。    首先,说下实时进程的调度   实时进程,只有静态优先级,因为内核不会再根据休眠等因素对其静态优先级做调整,其范围在0~MAX_RT_PRIO-1间。默认MAX_RT_PRIO配置为100,也即,默认的实时优先级范围是0~99。而nice值,影响的是优先级在MAX_RT_PRIO~MAX_RT_PRIO+40范围内的进程。   不同与普通进程,系统调度时,实时优先级高的进程总是先于优先级低的进程执行。知道实时优先级高的实时进程无法执行

操作系统之进程管理

烂漫一生 提交于 2019-12-05 03:17:27
为什么需要进程: 程序运行在并发环境下   1.运行过程不确定   2.结果不可再现    // 具体为什么不怎么清楚。。 进程:用来描述和管理运行过程 特征:1.动态性:是程序的一次执行过程,动态产生和消亡;    2.并发性  // 并发性与并行性不相等 ,并发性是在一个CPU中执行,因为速度很快,所以多个进程看起来在一起运行,不过在微观角度来说 ,还是在分开运行的。          // 并行性是在多个CPU上运行的进程,所以无论是微观还是宏观都是并发的。    3.异步性  // 明天看书 不是很理解    4.独立性(制约性)   //内存保护 程序和进程之间的差异:   1.动态和静态   2.暂存和长存   //进程在执行完后会被杀死,而程序会一直保留 杂点   进程的分类   按权限     1.系统进程     2.用户进程   按对CPU的依赖     1.偏CPU进程--->多计算     2.偏I/O进程----->多I/O   一个程序可以有多个进程。 PCB: 进程控制块   唯一表示进程 //进程存在的唯一标志 PCB的信息:   1.本进程的标识   2.父进程的标识   3.用户标识  // 看书不是很懂   4.进程控制信息 // 不懂 看书 PCB的组织方式:   一般为链表(要经常的动态删除和添加) 进程创建的时间   1.系统初始化时;

阻塞式访问和非阻塞式访问, 按键延时去抖。

本小妞迷上赌 提交于 2019-12-04 21:15:46
1、设备的阻塞方式访问 应用编程 sd=socke(...) recv(sd, ....)//无数据阻塞等待 有数据立即返回 希望按键设备 也能达到在用户空间阻塞方式访问 内核中为了实现设备的阻塞方式访问,提供了一套机制: 等待队列 核心数据结构 wait_queue_head_t 实验步骤: 1)定义一个等待队列头变量 wait_queue_head_t btn_wqh; 2) 初始化等待队列头变量 init_waitqueue_head(&btn_wqh); //等价于步骤1) 2) DECLARE_WAIT_QUEUE_HEAD(btn_wqh) 3) 驱动程序中,对设备执行读写操作时 如果设备I/O为就绪 可以调用以下函数, 实现进程的阻塞 //该函数会使得调用者进程进入睡眠状态 wait_event(btn_wqh, condition) //进入的是可中断的睡眠状态 wait_event_interruptible(btn_wqh, condition) condition,为TRUE 直接返回 不睡眠 为FALSE,进程进入睡眠状态 4)当设备I/O就绪时 唤醒因I/O未就绪而进入睡眠状态的进程 wake_up(&btn_wqh); wake_up_interruptible(&btn_wqh); 实现原理: 1)内核中管理进程,会为每个进程建立PCB(进程控制块)

1.C#基础(上)

左心房为你撑大大i 提交于 2019-12-04 15:34:24
类最基本的要素:字段+方法(变量+函数) 构造方法主要作用是完成对象的初始化。方法名与方法名类名相同 方法的重载:参数个数及类型不同 this:指这个对象本身 a.访问这个对象的字段及方法;b.区分字段与局部变量;c.用于构造方法调用另一个构造方法 因此写程序主要是定义类,将类中的字段和方法写好 1、类型 分为值类型(结构和枚举)和引用类型(类、接口、指针、字符串、委托、数组) 类型可以拥有0或多个成员,这些成员分为字段、方法、嵌套类型。 字段成员:常量;字段和属性;事件(例如,点击事件) 方法成员:构造函数和析构函数;方法;操作符重载 嵌套类型:一个类型中定义其他类型 2、堆和栈 堆:托管堆和非托管堆——基于进程,属于进程内存空间的一部分。 栈:——基于线程 延伸:进程与线程 进程:一个执行中的程序的实例。将程序的可执行文件从磁盘加载到内存中,如果内存不够,Windows通过虚拟内存解决;进程调度,通过上下文切换,保证进程不会损失之前工作的数据。(虚拟内存:是计算机内存管理的一种技术--虚拟内存映射,使得应用程序认为它拥有连续的可用的内存。虚拟内存还包括硬盘上的一个虚拟内存分页文件。*当Windows发现某个进程占据的内存实际上是虚拟内存时,它会将硬盘上对应的页换入物理内存,以提高该进程的性能;进程隔离:保护操作系统中进程互不干扰,使用虚拟内存,虚拟地址不同;进程调度

Operating System: Process

徘徊边缘 提交于 2019-12-04 14:31:29
本文主要参考《计算机操作系统(第四版)》(西安电子科技大学出版社)以及清华大学操作系统公开课(向勇、陈渝),整理操作系统的基本概念,供自己复习查阅。 进程(Process) 在多道程序环境下,程序的执行是并发的,因此程序也失去了封闭性,执行具有间断性且执行结果具有不可再现性。这也就决定了程序是不能参与并发执行的。为此,引入了“进程”的概念。 定义 进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程包含 代码段 、 数据段 、以及 进程控制块(Process Control Block,PCB) 。进程的创建和撤销实质上是创建和撤销进程实体中的PCB。 基本状态 进程在并发时共享系统资源,因此它们在运行时呈现间断性,即进程在生命周期中可能具有多种状态。一般来说进程处于三种基本状态之一,同时为了保证描述的完整性,引入了创建状态和终止状态。 分类 创建状态 前面提到进程的创建主要是指创建PCB。创建PCB一般需要如下步骤:申请一个空白PCB,并向其中填写用于控制管理进程的信息;为该进程分配运行所必须的资源。完成上述步骤之后,进程就处于就绪状态并被送入就绪队列。 就绪(Ready)状态 指进程已经处于准备好运行的状态(即进程已经获取到除了CPU以外所有所需的资源,只要再获得CPU即可执行)。通常把所有就绪态的进程按一定的 策略 排序,存放到 就绪队列 中。 执行

操作系统复习(1)进程管理

最后都变了- 提交于 2019-12-04 14:27:25
进程控制块(PCB) 进程控制块是进程的唯一标志。 PCB是有限的,创建进程需要申请PCB。 进程控制块中的内容: 为什么要区分就绪状态和等待状态? 就绪状态是指进程仅缺少处理机,只要获得处理机资源就立即执行; 等待状态是指进程需要其他资源(除了处理机)或等待某一事件。 之所以把处理机和其他资源划分开,是因为在分时系统的时间片轮转机制中,每个进程分到的时间片是若干毫秒。也就是说,进程得到处理机的时间很短且非常频繁,进程在运行过程中实际上是频繁地转换到就绪状态的;而其他资源(如外设)的使用和分配或者某一事件的发生(如I/O操作的完成)对应的时间相对来说很长,进程转换到等待状态的次数也相对较少。这样看来,就绪状态和等待状态是进程生命周期中两个完全不同的状态,显然需要加以区分。 进程状态转换 1、就绪状态→运行状态 处于就绪状态的进程获得了处理机资源。 2、运行状态→就绪状态 时间片用完了让出处理机; 可剥夺操作系统中,优先级更高的进程被调度,正在执行的低优先级进程从运行状态转为就绪状态。 3、运行状态→阻塞状态 进程请求某一资源或等待某一事件的发生。 4、阻塞状态→就绪状态 进程等待的时间到来了(I/O操作结束或中断结束)。 进程控制 进程的创建 子进程可以继承父进程所拥有的资源。 子进程被撤销时,将从父进程那里获得的资源归还给父进程。 撤销父进程时,必须同时撤销其所有的子进程。

操作系统-第4章习题解析

我只是一个虾纸丫 提交于 2019-12-04 12:21:06
第4章习题解析 1.为什么要配置层次式存储器? 答:这是因为:   a.设置多个存储器可以使存储器两端的硬件能并行工作。   b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。   c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。增加CPU中寄存器的数量,也可大大缓解对存储器的压力。 2.可采用哪几种方式将程序装入内存?它们分别适用于何种场合? 答:将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。 3.何为静态链接?静态链接时需要解决两个什么问题? 答:静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开的链接方式。   将几个目标链接装配成一个装入模块时,需解决以下两个问题:     将相对地址进行修改。即将除第一个模块外的相对地址修改成装入模块中的相应的相对地址。     变换外部调用符号。即将每个模块中所用的外部调用符号,都变换为相对地址。 4.何谓装入时动态链接?装入时动态链接方式有何优点? 答:装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种 链接方式,即在装入一个目标模块时

操作系统-第2章习题解析

走远了吗. 提交于 2019-12-04 12:05:37
第二章习题解析 1. 什么是前趋图?为什么要引入前趋图? 答:前趋图 (Precedence Graph) 是一个有向无循环图,记为DAG(DirectedAcyclic Graph) ,用于描述进程之间执行的前后关系。 2. 画出下面四条语句的前趋图: S1=a: =x+y; S2=b:=z+1; S3=c:=a–b ; S4=w:=c+1; 答:其前趋图为: 3. 什么程序并发执行会产生间断性特征? 答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。 4.程序并发执行时为什么会失去封闭性和可再现性? 答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改 变,致使程序运行失去了封闭性,也会导致其失去可再现性。 5.在操作系统中为什么要引入进程概念?它会产生什么样的影响? 答:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。 影响 : 使程序的并发执行得以实行。 6.试从动态性,并发性和独立性上比较进程和程序。 答: (1) 动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源 而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体。 (2)