Linux基础七——进程的描述

在早期的单道批处理系统里,程序的执行方式是顺序的,在内存里只允许装入一道程序,并且由他独占系统中的所有的资源,任性!

但是这种处理方式有明显的缺点:效率低,浪费资源

考虑到我们希望其能并发的执行多个程序并共享资源,我们引入了进程的概念。

***************前趋图

    前趋图:用于描述进程先后顺序的有向无循环图,它的每个节点表示一个进程、程序段或者一条语句。进程之间的前趋关系使用->来表示    

  eg:p1和p2存在前趋关系则可以表示为:p1->p2 该图的意义是:p1开始执行之前p2必须完成

  至于为什么不能有循环,举个栗子:

  p1指向p2,p2又指向p1这种情况下,p2的开始依赖于p1的完成,p1的开始依赖于p2的完成,这显然是没有办法实现的。


***************程序的执行顺序

一个应用程序由若干个程序段组成,而这些程序段必须遵守一定的执行顺序才能正确的完成某个功能。而我们的程序的执行顺序就可以是用前趋图来表示。

        程序在顺序执行时具有以下特征

1、顺序性:每个操作必须在下一个操作开始前结束

2、封闭性:程序运行时独占全机资源

3、可再现性:只要初始条件相同无论执行多少次程序的结果不变


***************程序的并发执行

程序的并发执行到底啥?举个栗子:我们现在有三个程序:作业的输入、计算、打印,在我们完成了第一个作业的输入并且进入了计算第一个作业的时候,我们的作业输入程序可以接受第二个作业的输入。同理,在我们计算完成并进入打印第一个作业的阶段时,我们可同时进行第二个作业的计算。

结论:不存在前趋关系的程序可以并发的执行

eg: s1:a = x+2

s2:b = y+3

s3:c = a+b

s4:d = c+1

这条语句的前趋图如下:


程序在并发执行的时候具有以下特征

1.间断性:并发执行的程序之间性成相互制约的关系。例如输入程序并没有完成第一次的输入此时计算程序必须等待。

2.失去封闭性:当系统中存在多个并发执行的程序时,系统中的资源将被他们共享。而这些资源的状态也可以被这些程序所改变

3.不可再现性:因为程序的速度是不可以预见的。如果存在一个共享变量在程序每次执行时两个程序都会对该变量做一定的改变,我们不可以预知最后的结果是什么。


并发与并行:

并行性:两个及以上事件在同一时刻发生

并发性:两个及以上事件在统一时间间隔发生


***************进程的定义

进程:(1)进程是程序的一次执行

          (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动

          (3)进程是具有独立功能的程序在数据集合上运行的过程,也是系统进行资源分配和调度的独立单位

进程特征:

1.动态性:进程是静态的程序在执行时的过程,由创建产生,由调度执行,由撤销而消亡。

2.并发性:多个进程实体同村域内促进,并且能够在同一时间段内同时运行。

3.独立性:进程实体可以各自独立运行,独立获得资源也是独立的接受调度的基本单位。

4.异步性:进程按照各自独立的不可预知的速度前进。


***************进程的基本状态及转换

1)进程的三种基本状态

就绪:进程已经做好准备进入运行状态,已经分配到了除CPU以外的所有资源╰( ̄▽ ̄)╭

           系统将处于就绪状态的进程们排成一个就绪队列

执行:进程已经获得CPU

阻塞:正在执行的进程由于发生了某件事情暂时无法继续执行。

          同样地,系统也将这些阻塞的宝宝们排成一个阻塞队列

进程的其他状态:
D:disk sleep 不可中断的睡眠,等待I/O事件的就绪,不能被用户kill
S:sleeping 可中断睡眠
R:running 运行
T:stopped
t:tracing stop 可追踪状态
X:dead 死亡
Z:zombie 僵尸状态 进程已经死亡但是依然维护PCB

2)进程状态之间的转换

进程在运行的过程中会发生状态的转换,基本状态转换关系图如下:


进程和程序的区别:程序是二进制文件,开启应用程序的执行,进程可以被调度和切换
程序转换成程序的流程:1.内核将程序读入内存,为其分配空间。
2.内核为其保存PID及相应状态信息,将进程放入运行的队列里等待执行。

  *********************************************************************************************************************************************  

**CPU之和内存打交道,它将需要执行的程序加载到内存,每个程序加载到内存之后被操作系统管理变成进程,我们用一个结构体对应一个进程——进程控制块(PCB)。
PCB:保存进程的具体信息的一个数据结构,描述一个具体的进程
       ***在Liunx中进程控制块是task_struct结构体
PCB内容
进程的标识符(PID)
进程状态描述
进程的优先级(注意优先级和权限的区别)
上下文数据(非常重要)
I/O状态信息:显示的I/O请求,分配给进程的I/O设备和被使用的文件的列表
记账信息:统计进程的调度时间等
程序计数器:程序里即将被执行的下一条指令的地址
内存指针

进程的切换:在进程运行时CPU会在寄存器里残留进程的临时数据,当进程被切换出去之前这些临时数据都会被保留下来,

当其恢复时也会先将进程的那些临时数据加载进去,此时就该进程就和他被切换之前一样。我们将这些数据称为:上下文数据。

***************进程的地址空间

1)进程的地址空间的具体表达


我们以一个小程序来验证一下此图的正确性


该程序的结果如图


我们可以看见其中的数据所在的位置与我们之前给出的空间地址模型一致。


2)分段存储式管理方式

a.引入分段的原因

通常程序都被分为若干个段,如主程序段,子程序段,数据段,栈段等等,每个段都是从0开始编址,是相对独立的逻辑单位,我们采用分段机制十分的方便管理,满足信息共享等

b.分页与分段

分页系统里的页只是存放信息的物理单位(块),并无完整的逻辑意义,而一个可被共享的过程往往可能需要占用数十个页面,这为实现共享增加了困难而此时我们就可以将需要共享的数据放入一个段内,极大地简化了共享的实现。

c.分段的基本原理

在分段存储管理方式里,作业的地址空间被分为了若干个段,每个段定义了一组逻辑信息,每个段都有自己的段号以及一段连续的地址空间

d.段表

在分段存储管理系统里,我们为每个段分配一个连续的分区。进程中的各个段,可以离散的装入内存的不同分区。为了保证程序能够正常的运行,我们为每个进程建立了一张映射表——段表,记录了该段在内存里的起始位置和段的长度,用于实现逻辑到物理内存的映射

我们来看一下段表映射的示意图


左边一部分代表我们的作业空间 而中间就是我们的段表,最右边则是内存空间

f.地址变换机制

为了实现从逻辑地址到物理地址的转换,在系统里设置了段寄存器,用于存放段表起始位置和段表的长度TL,在转换时,系统将逻辑地址的段号和段表长度TL比较如果段号大于TL则表示越界访问,产生中断信号,如果没有越界则根据段表的起始位置计算对应段表项的位置,从里面读出该段的内存起始位置,然后检查段内地址是否超过该段的段长,如果超过同样发送中断信号,若均未越界则将段基址和段内偏移相加即可得到物理地址。

g.分页和分段

1.页是物理信息单位

2.页的大小固定并且由系统决定

3.分页的用户程序地址空间是一维的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机操作系统【第一章】 1. 设计现代OS的主要目标是什么? 方便性,有效性,可扩充性和开放性. 2. OS的作用可表现为哪几个方面? a. OS作为用户与计算机硬件系统之间的接口; b. OS作为计算机系统资源的管理者; c. OS作为扩充机器. 3. 试说明推动多道批处理系统形成和发展的主要动力是什么? 不断提高计算机资源利用率和系统吞吐量的需要; 4. 何谓脱机I/O和联机I/O? a. 脱机输入输出方式(Off-Line I/O)是为了解决人机矛盾及CPU和I/O设备之间速度不匹配而提出的. 它减少了CPU的空闲等待时间,提高了I/O速度.具体内容是将用户程序和数据在一台外围机的控制 下,预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时,在直接从磁带机高速输入 到内存,从而大大加快了程序的输入过程,减少了CPU等待输入的时间,这就是脱机输入技术;当 程序运行完毕或告一段落,CPU需要输出时,无需直接把计算结果送至低速输出设备,而是高速把 结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是 脱机输出技术. b. 若这种输入输出操作在主机控制下进行则称之为联机输入输出方式. 5. 试说明推动分时系统形成和发展的主要动力是什么? 用户的需要.即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需求. 6. 试说明实时任务的类型和实时系统的类型. a. 实时任务的类型按任务执行时是否呈现周期性来划分,分为周期性实时任务和非周期性实时任务; ---根据对截止时间的要求来划分,分为硬实时任务和软实时任务; b. 通常把要同达行实时控制的系统统称为实时控制系统,把要求对信息进行实时处理的系统成为实时 信息处理系统. 7. 实现多道程序应解决哪些问题? a. 处理机管理问题; b. 内存管理问题; c. I/O设备管理问题; d. 文件管理问题; e. 作业管理问题. 8. 试比较单道与多道批处理系统的特点及优缺点. a. 单道批处理系统是最早出现的一种OS,它具有自动性,顺序性和单道性的特点; ---多道批处理系统则具有调度性,无序性和多道性的特点; b. 单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾中形成的,旨在提高系统 资源利用率和系统吞吐量,但是仍然不能很好的利用系统资源; ---多道批处理系统是对单道批处理系统的改进,其主要优点是资源利用率高,系统吞吐量大;缺点是 平均周转时间长,无交互能力. 9. 实现分时系统的关键问题是什么?应如何解决? a. 关键问题:及时接收,及时处理; b. 对于及时接收,只需在系统中设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输 入的数据; ---对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能使每个作业都运行 一次.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值