标签:记录 出错 进程管理 位长 掌握 用户数 src inf 释放内存
PCB包含有关进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。
1.系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。
2.一个进程的PCB结构都是全部或部分常驻内存的。
在创建一个进程时,首先创建其 PCB,然后根据PCB 中信息对进程实施有效的管理和控制。
当一个进程完成其功能之后,系统释放PCB,进程也随之消亡。
1.进程名或进程标识号
2.用户名或用户标识号
3.家族关系:每一个进程必有一个父进程;可以有0个或者多个子进程。
1.进程当前状态
2.进程优先级
3.程序开始地址
4.各种计时信息:进程占有和利用资源的有关情况。
5.通信信息:执行过程中与其他进程的信息交换情况
1.占用内存大小及其管理用数据结构指针,例如后述内存管理中所用到的进程页表指针等。
2.在某些复杂系统中,还有对换或覆盖用的有关信息,如对换程序段长度,对换外存地址等。在进程申请、释放内存时使用
3.共享程序段大小及起始地址
4.输入输出设备的设备号,所要传送的数据长度、缓冲区地址、缓冲区长度及所用设备的有关数据结构指针等。在进程申请释放设备进行数据传输中使用
5.指向文件系统的指针及有关标识等。
进程因等待某个事件而进入等待状态或因某种事件发生被中止在处理机上的执行时,为了以后该进程能在被打断处恢复执行,需要保护当前进程的 CPU现场(或称进程上下文)。
一个PCB表一般占几百到几千个字节(Linux系统的每个PCB约占1KB多的内存空间)。
有的系统为了减少 PCB对内存的占用量,只允许PCB中最常用的部分,如CPU现场保护、进程描述信息、控制信息等常驻内存。PCB 结构中的其他部分则存放于外存之中,待该进程将要执行时与其他数据一起装入内存。
描述:将系统中所有的PCB都组织在一张线性表中,将该表的首址存放在内存的一个专用区域中
特点:该方式实现简单、开销小,但每次查找时都需要扫描整张表,因此适合进程数目不多的系统。
描述:把具有相同状态的进程的PCB通过PCB中的链接字链接成一个队列,形成就绪队列、若干个阻塞队列和空白队列等。
排序优先级:
就绪队列:
把具有相同状态的进程的PCB通过PCB中的链接字链接成一个队列,形成就绪队列、若干个阻塞队列和空白队列等。
阻塞队列:
处于阻塞状态进程的PCB根据其阻塞原因的不同,排成多个阻塞队列,如等待I/O操作完成的队列和等待分配内存的队列等。
描述:
根据所有进程状态的不同,建立几张索引表,例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。
在每个索引表的表目中,记录具有相应状态的某个PCB的地址。
进程上下文是一个抽象的概念,包含进程执行过的、执行时的以及待执行的指令和数据,是存储在指令寄存器、堆栈(调用子程序的返回点和参数等)、状态字寄存器等中的内容。
动态部分指在进入和退出不同的上下文层次时,系统为各层上下文中相关联的寄存器值所保存和恢复的记录,其变化规则满足先进后出的堆栈方式,每个上下文层次在栈中各占一项。
任一进程,都有一个自己的地址空间,称为进程空间或虚空间。
进程空间的大小只与处理机的位数有关。例如,16位长处理机的进程空间大小为216,而32位长处理机的进程空间大小为232。
程序的执行在进程空间内进行。用户程序、进程的各种控制表格等都按一定的结构排列在进程空间中。
用户程序在用户空间内执行
操作系统内核程序在系统空间内执行。
为防止用户程序访问系统空间,造成访问出错,系统通过程序状态寄存器等设置不同的执行模式,即用户模式(用户态)和系统模式(系统态)来进行保护。
标签:记录 出错 进程管理 位长 掌握 用户数 src inf 释放内存
原文地址:https://www.cnblogs.com/mengxiaoleng/p/11617871.html