计算机操作系统(二)

进程

一、程序

程序是指令的有序集合,它是静态的。

程序顺序执行时的特征有:
①顺序性
一个程序会严格按照规定次序执行
②封闭性
程序执行时会独占系统的所有资源,资源的状态只有本程序能改变。程序开始执行之后,其执行结果不会受到外界影响。
③可再现性
程序执行时的环境与初始条件相同,当程序重复执行,都将会获得相同的结果。

程序并发执行时的特征有:
①间断性
由于并发执行,多个程序轮流占用时间片,就会出现程序暂停的情况
②失去封闭性
由于是并发执行,所以多个程序会共享计算机的资源,从而失去了封闭性。
③不可再现性
由于是并发执行,多个程序由于彼此执行的速度不同,还存在着交替执行的情况,所以就算初始条件和运行环境不变,也不能再现条件。

二、进程

为了使程序能够并发执行,并且在程序并发执行的时候能够进行控制和描述,从而引进了进程的概念,进程是一个程序在数据集上运行过程,它是动态的。它是系统进行资源分配和调度的基本单位(在引进线程之前,进程是调度的基本单位)。

进程的特征:
动态性:
进程的实质是进程实体的一次执行过程,故动态性是进程最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤销而消亡”。可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合, 其本身并不具有运动的含义,因而是静态的。

并发性:
并发性是指多个进程能够同时存在内存中,并且在同一时间间隔运行。引入进程就是为了程序能够并发执行。程序没有PCB控制块,所以无法并发执行。

异步性:
异步性是指进程是以不可预知的,各自独立的速度运行。

独立性:
独立性是指进程是一个能够独立运行,独立接收资源分配,独立进行调度的基本单位。

PCB进程控制块:
进程实体由程序段、相关数据段、PCB三部分构成。

三、线程

操作系统引入进程是为了程序能够并发执行,并且便于描述和控制并发程序,以提高资源利用率和系统吞吐量。而**引入线程是为了减小进程切换带来的开销。**引入线程之后,进程只是资源分配的基本单位,不再是任务调度的基本单位。线程才是任务执行和调度的基本单位。

线程的特征有:

轻型实体
线程除了必要的资源外,不拥有系统的资源

任务执行和调度的基本单位

可并发执行
同一个进程中的多个线程或不同进程中的多个线程都可以并发执行

共享进程资源
同一个进程中的多个线程共享该进程占用的全部系统资源。

四、进程的三种状态

在这里插入图片描述

五、进程管理

进程控制

进程控制是进程管理中最基本的功能,它用于创建一个新的进程,终止一个完成的进程,中止一个因为某种原因阻塞的进程。它还可以负责进程的状态转换。

想要控制进程,就需要使用原语原语是一系列机器机器指令的集合,原语的操作是原子性的,集合中的所有指令要么都执行,要么一条也不执行。 原子操作在核心态(管态)下执行。

用于进程控制的原语有创建原语、撤销原于、阻塞原语、唤醒原语,其中创建原语只会执行一次。

创建原语的执行过程:在这里插入图片描述

进程通信

进程通信其实就是指进程间的信息交换。进程之间的互斥、同步其实就是在进行通信,只不过互斥和同步传递的信息都很少。随着计算机发展,进程需要更高级的通信方式,这些方式可以分为三大类:
①共享存储器通信、②消息传递、③管道通信

共享存储器系统

1.共享数据结构通信
在这种通信方式中,要求进程共享一个数据结构以实现信息的交换,这种信息交换方式能够传递的数据较少。效率较低。

2.共享存储区通信
为了传输大量的数据、在存储器中划出一块分区,用于进程共享,进程可以对共享区的数据进行独写来实现进程通信。

消息传递

消息传递是现在使用较广泛的一种方式,在微内核计算机与服务器通信时常用消息传递,消息传递根据实现方式不同可以分为直接通信间接通信。

1.直接通信
操作系统通过通信原语直接向目标进程发起通信,目标进程也可以使用原语直接接收消息。这两个原语是sendreceive

2.间接通信
间接通信方式指进程之间的通信需要通过作为共享数据结构的实体。该实体用来暂存发送进程发送给目标进程的消息;接收进程则从该实体中取出对方发送给自己的消息。通常把这种中间实体称为信箱。消息在信箱中可以安全地保存,只允许核准的目标用户随时读取。信箱可由操作系统创建,也可由用户进程创建,创建者是信箱的拥有者。
信箱可以由操作系统创建,也可以由用户创建,创建者是信箱的拥有者,可以把信箱分为三类:
①私用信箱
信箱的拥有者只能从信箱中读取消息,其它用户只能向信箱写消息,该信箱作为创建进程的一部分,创建者进程结束,该信箱就结束。
在这里插入图片描述
②公用信箱
公用信箱由操作系统创建,核准进程可以向公用信箱写消息,也可以从公用信箱读消息。公用信箱可以在系统运行期间始终存在。
③共享信箱
共享信箱由进程创建,进程可以指定谁能使用该共享信箱

管道通信

“管道”,是指用于连接一 个读进程和一一个写进程以实现它们之间通信的一一个共享文件,又称pipe文件。管道是单向的,写进程视管道文件为输出文件,以字符流的形式把大量数据送入管道;读进程视管道文件为输入文件,从管道中接收数据。这种方式首创于Unix系统。

Windows中的通信方式:
在这里插入图片描述

六、进程同步

进程同步的主要任务是对多个进程进行执行次序上的协调,使并发的进程能够更好的共享资源,合作完成任务。

临界资源、临界区

临界资源

在一段时间内只允许一个进程访问的资源叫做临界资源,临界资源是互斥使用的,比如计算机中的打印机,同时只能给一个进程使用,打印机就是临界资源。

临界区

每个进程访问临界资源的那段代码叫做临界区。在访问临界资源时,代码会先检查临界资源是否空闲,这段检查代码叫做进入区;代码执行完成之后也会告诉其它进程,临界资源已经使用完毕了,这段代码叫做退出去。

同步机制应该遵循的规则

记住这16字真言!

空闲让进
忙则等待
有限等待
让权等待

信号量

信号量机制是一种进程同步工具,它用信号量及P、v操作来实现进程的同步和互斥。信号量的数值与相应资源的使用情况有关
当数值>0时,表示当前可用资源数量;
当数值<0时,其绝对值表示等待使用该资源的进程个数。

该值仅能由P操作、V操作改变(p、v操作是低级通信方式)
P就是申请资源、V是释放资源

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值