操作系统之进程

1、什么是进程?

  操作系统最核心的概念就是进程,进程就是对一个正在运行的程序的抽象。在单核CPU中同一时刻只能有一个进程在运行,这种情况下的并行是伪并行,只是CPU在多个进程之间快速的切换造成并行的假象,这种快速的切换就称作多道程序设计。当然在多核心CPU中,能够实现真正的硬件并行。

2、进程的模型

       在进程模型中,计算机上所有可运行的软件,通常也包括操作系统,被组织成若干顺序的进程,进程就是一个正在执行的程序的实例,包括程序计数器,寄存器以及变量的当前值。一个进程是某种类型的活动,其有程序,输入,输出和状态,进程之间的切换是由调度算法来实现的。要注意的是一个程序执行两次也就产生了两个进程。 虽然每个进程都有其程序计数器,但真正的物理程序计数器只有一个,在切换到某个进程时,操作系统会将当前进程的程序计数器装载到实际的物理程序计数器中,而当该进程执行结束或者暂停时,此时物理程序计数器内容就被保存到该进程的程序计数器中了。

注意:CPU在进程间快速切换,每个进程的执行时间是不确定的,对进程进行编程时不能对进程的时序做确定的假设!

3、创建进程

下面四种情况下会创建进程:

1、系统初始化;

2、执行了正在运行的进程所调用的进程创建系统调用;

3、用户请求创建进程;

4、一个批处理作业初始化;

进程可以分为:前台进程和后台进程,前台进程就是用于交互的,后台进程一般和用户没有特定的关系,实现某些专用功能,停留在后台处理电子邮件,Web网页,新闻,打印之类的活动的进程成为守护进程。

 UNIX和Windwos中如何创建进程?

在UNIX中只要fork系统调用创建进程,这时系统调用会创建一个与调用进程相同的副本,父进程与子进程有相同的存储映像,同样的环境字符串和同样的打开文件,然后子进程执行sort。在Windows中调用CreateProcess即创建进程,也负责将正确的程序装入进程。

注意:在UNIX中子进程的初始地址空间是父进程的一个副本,但是是两个不同的地址空间,所以此时新创建的进程可以使用父进程的资源。在Windwos中从一开始父进程的地址空间和子进程的地址空间就是不同的。

4、终止进程

进程终止发生的条件:

1、正常退出;

2、出错退出;

3、严重错误;

4、被其他进程杀死;

一般进程最好是完成其工作,然后正常退出,正常退出能够保该进程的资源正常释放。UNIX中调用exit,在Windows中调用ExitProcess能够实现自愿退出,而杀死进程在UNIX中调kill,Windows中调用TerminateProcess来实现。

5、进程的层次结构

在UNIX中进程和其所有的子女以及后裔共同组成一个进程组。比如用户从键盘发出一个信号,信号送给当前与键盘相关的进程组中的所有成员,成员自己决定对信号的操作。但是在Windows中没有进程层次的概念,进程都是平等的,在创建进程的时候,父进程得到子进程的句柄,该句柄可以用来控制子进程, 但是父进程有权将这个句柄交由其他的进程。

6、进程的状态

进程有三种状态:运行状态,就绪状态,阻塞状态。

各个状态之前的转化方式如下:

7、进程的实现

为了实现进程模型,操作系统维护一张表格,或者成为一个结构数组,称为进程表。每一个进程占用一个进程表项目,该表项包含了进程状态的重要信息。包括程序计数器,堆栈指针,内存分配状况,打开文件状况,账号和调度信息,以及从运行状态,切换到就绪状态或者阻塞状态必须保存的信息,这样在重新获得CPU时间片能够继续执行,好像从未中断过一样。

8、多道程序设计模型

多道程序设计模型可以提高CPU的利用率。

备注:什么是批处理作业?

批处理系统,又名批处理操作系统。批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统。批处理操作系统不具有交互性,它是为了提高CPU的利用率而提出的一种操作系统。这里就要涉及批处理调度问题,批处理作业调度问题要求对于给定的 n 个作业,制定最佳作业调度方案,使其完成时间和达到最小。

时间: 2024-08-06 07:59:03

操作系统之进程的相关文章

操作系统之进程篇(1)

1.进程介绍: 1.1 进程模型: 进程是一个程序的实际执行,包含了程序计数器的状态,寄存器和变量等等! 程序可以看成是一个状态的序列,程序在不同时刻呈现出不同的状态,而这种状态的前后交替过程可以看成是程序的执行过程.概念上来说,每个程序有自己的虚拟CPU,但在现实中CPU在不同的进程间来回切换,又称这种切换为伪并行! 进程和程序差别看似微小,实际上却是十分精妙; 可以将计算机执行程序的过程看成一次有趣的烹饪过程.食谱就是程序,厨师就是CPU,而食材是输入,得到的输出是鲜美可口的美食. 当厨师在

操作系统学习---进程管理(二)

要点: 基础:进程描述及控制 策略:进程调度 实现:互斥与同步 避免:死锁与饥饿 解决:几个经典问题 进程的引入 程序的顺序执行 源代码程序,目标程序和可执行程序 程序执行:编辑,编译,链接,执行 程序的结构:顺序,分支,循环结构 程序执行的特征:顺序性,封闭性,可再现性 程序并发执行 多道程序设计技术:多个程序并发执行 程序并发执行时的特征:间断性,非封闭性,不可再现性 并发执行引发的问题: 协调各程序的执行顺序:输入数据还未全部输入内存时,计算必须等待 多个执行程序共享系统资源,程序之间可能

操作系统之进程篇(3)

1. 信号量机制的缺陷问题: 在上面的生产者消费者实例中,信号量的工作机制如下(我们以生产者的代码为例): 1 down(&empty); 2 down(&mutex); 3 enter_item(item); 4 up(&mutex); 5 up(&full); 如果交换1号和2号语句,变成: 1 down(&mutex); 2 down(&empty); 那么可能会出现下面的情形: mutex变成0,此时empty == 0,那么生产者阻塞; 此时消费者

操作系统之进程篇(2)

进程间通信(InterProcess Communication,IPC): 进程通信中遇到的三个问题: a) 进程之间如何进行信息的传递? b) 多个进程在执行自己的核心代码时如何能够不相互影响? c) 当进程之间出现相互依赖关系时,如何才能合理的调度进程的执行顺序! 1. 竞争情形: 当两个或多个进程同时读写某个共享资源的时候,程序运行的最终结果由各个进程的具体执行的情况所决定! 如何避免竞争情形的出现,那么我们首先引入关键代码区的定义: 程序中访问共享内存或其他共享资源的代码区被称为关键代

我的操作系统复习——进程(下)

上一篇博客是复习操作系统进程篇的上篇,包括进程状态.PCB.进程控制等——我的操作系统复习——进程(上),本篇博文是进程篇的下篇,开始复习进程同步.进程通信,以及重要的线程概念. 一.进程同步 什么是同步?同步就是说一个任务要等另一个执行完毕才能继续执行,而不是同时执行.我们都知道,进程有异步性,这种性质会导致操作系统的混乱.进程同步,指的是进程之间的执行次序的管理,就是为了解决进程异步性的这种混乱. (1)直接制约和间接制约. 进程之间有两种制约关系.分别是直接制约和间接制约.直接制约指的是进

【操作系统】进程

进程是一个正在执行程序的实例,它包括程序计数器.寄存器和变量的当前值.在单CPU的环境下,进程交替运行,CPU在多个进程间快速切换,让人感觉多个进程在同时执行,但同一时刻只有一个进程在运行,这就是所谓的伪并行. 创建进程 有四种创建进程的方法: 系统初始化:操作系统启动时,会创建一些进程,包括前台进程和后台进程(守护进程). 正在运行的进程执行系统调用:一个进程发出系统调用创建另一个进程,以便多个进程相互协作完成任务. 用户请求创建进程:这是我们最熟悉的一种方式.命令行环境下键入命令,而图形界面

操作系统:进程管理和IO控制

一.进程管理 进程管理包括进程控制,进程调度,进程同步与通信,死锁控制四个内容. (一)进程控制 进程是操作系统中运行的基本单位,包括程序段,数据段和进程控制段.操作系统通过进程控制块(PCB)管理进程.每一个PCB唯一标示一个进程.它存储进程的PID,UID,当前状态等信息,以及进程执行某一时刻的寄存器值,并且指向进程的数据段和程序段.OS把所有PCB链接为一个链表. 进程在刚刚被创建时出于new状态.OS负责申请一块存储空间作为该进程的PCB,在其中填上进程的信息,标示为ready,链接到P

操作系统概念 进程概述

进程 进程概念 进程 进程是执行中的程序,这只是非正式的说法.进程不只是程序代码,程序代码称为文本段(代码段),还包括当前活动,通过程序计数器(PC)的值和处理器寄存器的内容来表示.此外,进程还包括进程堆栈段(临时数据.函数参数.局部变量.地址)和数据段(包括全全局变量.还可能包括堆(leap),是在进程运行期间动态分配内存. 程序是被动实体,如存储在磁盘上包含一系列指令的文件内容(可执行文件),而进程是一个活动实体,他有一个程序计数器来表示下一个要执行的命令和相关资源集合. 虽然两个进程可以与

操作系统之进程管理

本章要点: 基础:进程描述及控制 策略:进程调度 实现:互斥与同步 避免:死锁与饥饿 进程定义: 可并发执行的程序,在一个数据集合上的运行过程: 申请/拥有资源的最小单位: 程序定义:静态概念,是指令和数据的集合,可长期存储: 进程与程序对应关系: 一个程序可以对应一个进程或者多个进程: 一个进程可以对应一个程序,或者一段程序: 进程的特征: 1.动态性: 2.并发性: 3.独立性: 4.异步性: 引入进程带来的问题: 增加了空间开销:为进程建立数据结构, 额外的时间开销:管理和协调.跟踪.填写

操作系统2_进程控制

进程管理中最基本的功能.创建,终止,状态转换操作 有OS内核中的原语实现的,原语由若干指令组成,是'原子操作',所有动作要么做,要么不做,不允许中断,在管态下执行,常驻内存 进程创建: 进程图是描述有进程家族关系的有向树 进程间关系:子进程可以继承父进程所拥有的资源 引起进程创建事件: 1,.用户登录:2.作业调度:3.提供服务:4.应用请求 进程的创建: 申请空白PCB:为新进程分配资源:初始化进程控制块:将新进程插入就绪队列: 进程终止: 引起的事件: 正常结束:每种系统都应有表示进程已经运