进程的原理和实现
进程是操作系统中的可执行程序的一次执行。进程与程序的区别和相互关系如下:
(1)动态性和静态性(进程是活动的程序)
(2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相近
(3)一个进程可以涉及到一个或几个程序的执行;反之,一个程序可以对应多个进程,即同一程序段可以在不同数据集合上运行,可构成不同的进程。
(4)并发性
(5)进程具有创建其他进程的功能
(6)操作系统中的每个程序都是在一个进程现场中运行的。
进程控制块 进程描述程序的一次执行,它存在于内存中。系统的资源分配、调度是以进程为单位的。进程的资源、运行状态等是由内核管理,在内核中需要一个数据结构来描述。通常这种数据结构称为进程控制块(Process Control Block,PCB)。一个进程可以说是由进程控制块、代码和数据组成(数据和代码由程序提供)。PCB就代表了进程
进程控制块描述的内容非常多,所有和进程相关的信息都由它记录。
进程控制块的内容:
(1)进程标识符。 用于标识一个进程。标识符包括进程的ID、进程的名字、进程的家族关系和拥有此进程的用户标识等。
(2)进程上下文环境。 进程的上下文环境主要是指此进程运行时CPU各寄存器的内容,包括指令计数器、程序状态字、堆栈指针等。每个进程运行时CPU寄存器的内容都不同,一个进程被调度出去时需要保护它的上下文环境,当它被调度时需要恢复到之前保存的内容。
(3)进程调度信息。 进程调度相关的信息包括进程的状态、进程的调度策略、进程的优先级、进程的运行睡眠时间、进程的阻塞原因和进程的队列指针等。
(4)进程控制信息 进程的控制信息包括:进程的代码、数据、堆栈的起始地址;进程的资源控制,比如进程的内存描述符、文件描述符、信号描述符和IPC描述符等。进程使用的所有系统资源都会在PCB中描述。
(5)进程控制块的组织方式。 当进程处于不同状态时,内核会以不同的方式组织它们。
1>链接方式。链接方式把进程按照不同的状态分别放到不同的队列。
2>索引方式。索引方式应用像hash表等方式建立相应的索引表,处于不同状态的进程被放到相应的索引表中.
Linux内核中进程控制块定义为task_struct:
进程的状态
(1)运行状态
(2)阻塞状态
(3)就绪状态
线程的原理和实现
1、线程和进程的主要区别:
(1)进程是资源分配的基本单位
(2)线程是进程中的最小调度单位
(3)一个线程属于一个进程,一个进程至少有一个线程
2、为什么引入线程:
(1)线程的创建开销小
(2)线程间的同步开销小
(3)线程更易于调度
(4)线程易于实现并发
3、线程的实现方法
(1)用户级线程。 是指线程由应用程序简历,所有线程相关的内容都应由应用程序管理和调度,操作系统并不知道线程的存在,支队进程进行管理。
(2)内核级线程。内核级线程中所有线程的创建、调度和管理都是由内核完成。
- 大小: 21 KB
分享到:
相关推荐
Process Explorer 是一款免费的增强型任务管理器,是最好的进程管理器. 它能让使用者了解看不到的在后台执行的处理程序,可以使用它方便地管理你的程序进程. 能监视,挂起,重启,强行终止任何程序,包括系统级别的不允许...
java语言操作系统课程设计模拟进程管理系统源码 需求分析 实现n个进程并发运行; 实现进程创建、撤销、阻塞、唤醒; 实现进程的同步; 实现优先级调度、时间片轮转、短进程优先等调度算法; 系统在运行过程中应能...
实验一:模拟进程管理一 目的:模拟进程管理实现进程的创建 撤销 封锁和唤醒功能 二 功能描述1 创建进程: 申请PCB表;填写PCB表;连接到就绪队列中2 撤销功能:按给定进程的标识符从等待队列中撤销一个进程3 封锁...
进程管理 C 对于进程进行管理进程管理 C 对于进程进行管理
进程管理 1.实验内容 至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。 2.实验提示 PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,...
实验二 进程管理 Windows所创建的每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。每一进程都以调用ExitProcess() 或TerminateProcess() API函数终止。通常...
进程管理 百科名片 引是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存,网络资源等。很多人在回答进程的概念的时候,往往只会说它是一个运行的实体,而会忽略掉进程...
本程序 主要是采用C语言程序来模拟操作系统的进程管理原理,采用了常用的数据结构和算法:结构体、单链表和双链表。 Bug说明: 当没有创建任何进程时,调用block()、end()函数时,会出现内存错误!原因:就绪队列...
运行进程管理及进程通信(一)中给出的例子,查看自己运行的结果,并进行分析。 2、编写程序 (1)、要求程序运行时,系统中存在如下图(一)的进程树结构,写出程序源代码及程序运行结果并在进程树的相应进程节点上标...
很好进程管理实验进程管理实验进程管理实验
系统进程管理演示,创建进程、时间片到、阻塞进程、唤醒进程、撤销进程、显示就绪、显示阻塞、显示内存演示
操作系统课设,包括进程管理与通信,存储器管理,设备管理,文件管理,还有课设题目要求,很齐全。有课设报告,各个程序源代码,我们的课设题目,已经验收,还行。放上来供大家分享
操作系统进程管理实验(C语言实现)
金山进程管理器是由金山卫士官方推出的一款非常小巧好用的进程管理软件。包含金山进程管理器和新毒霸进程管理器两个版本,相比系统自带的进程管理器,功能更丰富,可以一键结束进程、查看进程模块、进程详细信息等,...
进程管理器进程管理器进程管理器进程管理器进程管理器进程管理器进程管理器进程管理器进程管理器进程管理器进程管理器
操作系统进程管理C语言实验代码,绝对能运行,无错误
北邮 操作系统 进程管理 实验二 含源代码 linux下
操作系统进程管理c语言版,内容详细,包括源码和注释!无错误,可直接运行
很简单的一个课程设计,实现了文件管理和进程管理 有一个cpb,实现几种文件中的运算:用户通过(1)文件逻辑结构实现了特定命令的“可执行文件”包括x=?:给x赋值一位数;x++:x加1;x--:x减1等操作;(2)用户通过...
史上最炫进程管理模拟 至少要有:1、创建新的进程;2、查看运行进程;3、换出某个进程;4、杀死运行进程;5、进程之间通信等功能。 先创建进程的PCB结构,通常包括以下信息:进程名,进程优先数,轮转时间片,进程...