进程控制块

第4章 抽象:进程

∥☆過路亽.° 提交于 2020-01-18 14:47:42
第4章 抽象:进程 操作系统的最基本抽象:进程。它很简单地被视为一个正在运行的程序。 操作系统通过虚拟化(virtualizing)CPU 来提供几乎有无数个 CPU 可用的假象。通过让一个进程只运行一个 时间片,然后切换到其他进程,操作系统提供了存在多个虚拟 CPU 的假象。这就是时分共享(time sharing)CPU 技术,允许用户如愿运行多个并发进程。 上下文切换(context switch) ,让操作系统能够停止运行一个程序,并开始在给定的 CPU 上运行另一个程序。所有现代操作系统都采用了这种分时机制。 抽象:进程 操作系统为正在运行的程序提供的抽象,就是所谓的 进程(process) 。 进程的 机器状态(machine state) :程序在运行时可以读取或更新的内容。 进程的机器状态组成: 内存:指令存在内存中。正在运行的程序读取和写入的数据也在内存中 寄存器:许多指令明确地读取或更新寄存器。它们对于执行该进程很重要。 一些非常特殊的寄存器: 程序计数器(Program Counter,PC) (有时称为指令指针,Instruction Pointer 或 IP):告诉我们程序当前正在执行哪个指令; 栈指针(stack pointer) 和相关的 帧指针(frame pointer) :用于管理函数参数栈、局部变量和返回地址。 进程API 创建(create)

操作系统 --进程的异步性

吃可爱长大的小学妹 提交于 2020-01-15 21:10:29
异步性是指进程以不可预知的速度向前推进。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。 是程序并发执行时,程序之间的相互制约关系导致了并发程序这种“执行——暂停——执行”这种间断性的活动规律。 比如,当正在执行的进程提出某种资源请求时,如打印请求,而此时打印机正在为其他某进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续执行。可见,由于资源等因素的限制,进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。 异步性就是描述进程这种以不可预知的速度走走停停、何时开始何时暂停何时结束不可预知的性质。 也就是说,如果传统意义上的程序没有在操作系统中为之配备进程控制块(PCB),没有用它来描述进程基本情况和活动过程,进而控制和管理进程,这样就会使程序在并发执行的时候失去其封闭性,也失去了可再现性。 但是,如果操作系统采用了进程同步机制,虽然程序具有异步性(走走停停、以不可预知的速度前进),但仍能保证进程并发执行的结果是可再现的。 所以,只要在操作系统中配置有完善的进程同步机制,且运行环境相同,作业经多次运行都会获得完全相同的结果。因此,异步运行方式是允许的。 来源: CSDN 作者: 我不是臭弟弟 链接: https://blog

Python 之进程

牧云@^-^@ 提交于 2020-01-15 15:15:30
理论知识 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统, 点击进入 PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在。 必备的理论基础: 一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 1.产生背景:针对单核,实现并发 ps:现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,且会被调度到4个cpu中的任意一个,具体由操作系统调度算法决定。 2.空间上的复用:如内存中同时有多道程序 3.时间上的复用:复用一个cpu的时间片 强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样才能保证下次切换回来时,能基于上次切走的位置继续运行 什么是进程 进程(Process

第二章、进程的描述与控制

荒凉一梦 提交于 2020-01-13 14:57:18
第二章、进程的描述与控制 2.1 前趋图和程序执行 2.1.1 前趋图 概念: 所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序。 2.1.2 程序顺序执行 特征: 顺序性 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状态只有本程序才能改变,程序一旦开始执行,其执行结果不受外界因素影响 可再现性:只要条件相同还会得到相同的执行结果。 2.1.3 程序并发执行 特征: 间断性 失去封闭性 不可在现性 2.2进程的描述 2.2.1 进程的定义和特征 定义 为了使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程的概念。 为了使参与并发执行的每个程序都能独立运行,在操作系统中必须为之分配一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。 因此进程的定义为: 由程序段、相关的数据段和PCB三部分构成的进程实体。 比较典型的定义有: 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是具有独立功能的程序在一个数据结合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 进程的特征 动态性 并发性 独立性 异步性 2.2.2 进程的基本状态以及转换 进程三种基本状态 由于多个进程在并发执行时共享系统资源

【linux系列知识】进程

这一生的挚爱 提交于 2020-01-13 04:01:09
进程 目录 进程 1、简单介绍 2、进程的状态切换 3、PCB进程控制块 4、孤儿进程和僵尸进程 5、进程间通信方式 pipe FIFO通信 mmap 信号 6、守护进程(脱离终端) 1、简单介绍 通俗讲,编译好的二进制程序是程序,例如a.out;运行着的程序是进程。 程序员角度:运行一系列指令的过程 操作系统角度:分配系统资源的基本单位 区别:程序占用磁盘,不占用系统资源(内存占用系统资源,CPU、内核);一个程序对应多个进程,一个进程对应一个程序;程序没有生存周期,进程有生存周期 2、进程的状态切换 3、PCB进程控制块 进程ID: 用于区别进程 进程的状态: 就绪、运行、挂起、终止 进程切换时需要保存和恢复的一些CPU寄存器 描述虚拟地址空间的信息: 虚拟地址和物理地址的对于关系 描述控制终端的信息: 如xshell打开两个终端连接同一个linux主机,在两个终端中执行同一个程序,这个终端的信息都分别存在PCB中 当前工作目录 umask掩码: 保护文件创建和修改的权限 文件描述符 和信号相关的信息 用户id和组id 会话和进程组 进程可以使用的资源上限 使用命令ulimit -a可以查看 4、孤儿进程和僵尸进程 孤儿进程:父亲死了,子进程被init进程领养 僵尸进程:子进程死了,父进程没有回收子进程的资源(回收:杀死父亲,被init领养,由init进程负责回收) 5

Linux系统之进程状态

让人想犯罪 __ 提交于 2020-01-13 02:50:44
  一、进程状态      1、R (TASK_RUNNING),可执行状态      2、S (TASK_INTERRUPTIBLE),可中断的睡眠状态      3、D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态      4、T/t (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态      5、Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程      6、X (TASK_DEAD - EXIT_DEAD),退出状态,进程即将被销毁      7、查看进程状态      二、进程状态转换      1、进程初始状态      2、进程状态变迁      三、进程调度      四、参考      一、进程状态↑      D:uninterruptible sleep (usually IO)      R:running or runnable (on run queue)      S:interruptible sleep (waiting for an event to complete)      T:stopped by job control signal      t:stopped by debugger during the tracing      W:paging

操作系统之进程实体

こ雲淡風輕ζ 提交于 2020-01-12 03:34:13
进程实体 为什么需要进程 在没有操作系统的时候,计算机每次只能执行一个程序,计算机资源属于当前运行的程序。配置了操作系统后,引入了多道程序设计的概念,这样合理地隔离资源,运行环境,有效得提升资源利用率。 进程是操作系统进行资源分配和调度的基本单位,进程作为程序独立运行的载体保障程序的正常执行。进程的存在使得操作系统资源的利用率大幅提升。 进程的实体 主存中的进程形态 标识符 标识符唯一标记一个进程,用于区别其他进程。常说的进程ID就是唯一的标识符。 状态 标记进程的进程状态,如:运行态 程序计数器 在CPU中也有类似的设备。 程序计数器指的是进程即将被执行的下一条指令的地址。 内存指针 内存指针是程序代码,进程数据等相关指针。 上下文数据 进程执行时处理器存储的数据 IO状态信息 被进程IO操作所占用的文件列表 记账信息 使用处理器时间,时钟数综合等 上述是进程中较为重要的一些概念,当然还有一些其他的概念。主存中的进程形态又可以分为四类。如下图: 进程控制块(PCB) 进程控制块是用于描述和控制进程运行的通用数据结构,记录进程当前状态和控制进程运行的全部信息,PCB使得进程是能够独立运行的基本单位。进程控制块是进程中较为重要的内容,是操作系统进行调度经常会被读取的信息,所以PCB是常驻内存的,存放在系统专门开辟的PCB区域内。 进程与线程 进程(Process)和线程(Thread

linux-进程概念

爷,独闯天下 提交于 2020-01-11 07:54:13
1.冯诺依曼体系   体系的构成 :运算器,存储器(RAM 和 ROM),控制器,输入设备,输出设备   思想 :  1.数据和程序是以二进制代码的形式放在存储器中,存放的位置由地址指定,地址码也是二进制的。  2.控制器是根据存放在存储器中的指令序列即程序来工作的,并由一个程序计数器(指令地址计数器)控制指令执行。控制器具有判断能力,能根据计算结果选择不同的动作流程。 注意:  ;a 这里的存储器指的是内存  b 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)  c 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。  d 所有设备都只能直接和内存打交道。 2.操作系统  操作系统是一个软件,是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统 的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。   操作系统的构成  操作系统内核(进程管理,内存管理,文件管理,驱动管理),其他应用(函数库 ,shell程序等等)   系统调用 : 操作系统提供的函数,称之为系统调用函数   库函数 : 系统在功能调用的使用上,功能比较基础,对用户的要求相对比较高,然后一些有心的开发者(大佬们)

操作系统:内存管理(概念)

回眸只為那壹抹淺笑 提交于 2020-01-11 07:40:11
  1、物理地址和逻辑地址    物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥(Nortbridge chip)映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。   逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。   2、连续内存分配方案:   内存必须容纳操作系统和各种用户进程,因此必须尽可能有效得分配内存,在分配内存过程中,通常需要将多个进程放入内存中,前面提到过,我们需要每个进程的空间相互独立,而且我们必须保护每个进程的内存空间的独立性,如果不同的进程间需要通信,可以按照我们前面提到的通信方法进行通信,但是在此时,我们考虑内存空间独立性的实现。这就涉及到内存分配:   我们将整个内存区域多个固定大小的分区,每个分区容纳一个进程,当一个分区空闲时,可以将内存调入内存,等待执行,这是最简单的内存分配方案,但是这种方案存在很多问题

操作系统进程管理常见问题(进程和线程的概念、临界区和临界资源的概念)

雨燕双飞 提交于 2020-01-11 02:37:11
1.什么是进程 i:进程是程序的一次执行。 ii:进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 iii:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 2.现代操作系统中的进程为何有多种状态?请列举几种常见的进程状态。 进程有三种基本状态(不同系统设置的进程状态数目不同) 就绪状态:一个进程已经具备执行条件,但由于无CPU暂时不能执行的状态 运行状态:进程占有CPU,并在CPU上执行 阻塞状态:指进程因等待某种事件的发生而暂时不能执行的状态 其他状态 新建状态:OS(操作系统)已完成为创建一进程所必要的工作 终止状态:程序终止后移入该状态 3.请画图描述进程基本状态的转换。 4.系统是如何管理进程的? 系统管理进程一般由原语来实现。 5.我们要运行一个程序时,操作系统是如何为我们创建一个进程的? i:申请空白PCB,赋予一个进程标识符 ii:为新进程分配资源 如内存 iii:初始化进程控制块 iv:为新进程插入就绪队列 6.现代操作系统为何需要同步机制?有哪些常见的进程同步机制?设计同步机制时需要遵循哪些准则? 现代操作系统往往需要多个进程中发生的事件存在某种时序关系,需要互相合作,共同完成一项任务。 锁机制、信号量机制、管程机制 同步机制的准则 空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入 忙则等待