总结操作系统进程管理部分知识

1 程序顺序执行时的特征: 1

2 程序段、数据段和PCB构成了进程的实体。 1

3 进程特征: 1

4 进程定义: 1

5 进程的基本状态: 1

6 PCB的作用: 1

7 PCB中的信息: 1

8 进程控制块的组织方式: 2

9 进程创建过程: 2

10 进程终止过程: 2

11 两种形式的制约关系: 2

12 临界区: 2

13 同步机制遵循的原则: 2

14 整形信号量: 2

15 结构体定义: 2

16 记录型信号量: 3

17 And信号量 3

18 信号量集 4

1 程序顺序执行时的特征:

顺序性、封闭性、可再现性。

2 程序段、数据段和PCB构成了进程的实体。

3 进程特征:

结构特征、独立性、异步性、动态性、并发性。

4 进程定义:

是系统分配和调度资源的独立单元。

5 进程的基本状态:

阻塞、执行、就绪。还有一种附加的挂起状态。

6 PCB的作用:

是进程存在的唯一标志。

7 PCB中的信息:

进程标识符、处理器信息、进程调度信息、进程控制信息。

8 进程控制块的组织方式:

链接、索引。

9 进程创建过程:

申请空白PCB,为新进程分配资源,初始化PCB,插入就绪队列。

10 进程终止过程:

检索进程PCB,读出其状态;若处于执行状态,则立即终止,置调度标志为真;若是父进程,将其子孙全部终止;终止进程拥有的所有资源;从所在队列中移除PCB。

11 两种形式的制约关系:

直接/间接相互制约关系。

12 临界区:

访问临界资源的代码段。

13 同步机制遵循的原则:

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

14 整形信号量:

S初始为1

Wait(s) : {

while s<=0 do no-op;

            s--;

}

Signal(s): s++;

15 结构体定义:

typedef struct _RuleListNode

{

    ListHead *RuleList;         /* The rule list associated with this node */

    int mode;                   /* the rule mode */

    int rval;                   /* 0 == no detection, 1 == detection event */

    char *name;                 /* name of this rule list (for debugging)  */

    struct _RuleListNode *next; /* the next RuleListNode */

} RuleListNode;

RuleListNode Node1;

等价于:

struct _RuleListNode

{

    ListHead *RuleList;         /* The rule list associated with this node */

    int mode;                   /* the rule mode */

    int rval;                   /* 0 == no detection, 1 == detection event */

    char *name;                 /* name of this rule list (for debugging)  */

    struct _RuleListNode *next; /* the next RuleListNode */

} ;

struct _RuleListNode Node1;

16 记录型信号量:

Struct semaphore

{

  Int value;

  Struct ProcessList L;

}

Wait(S)

Struct semaphore S;

S.value--;

If(S.value<0)

  Block(S,L);

}

Signal(S)

{

Struct semaphore S;

S.value++;

If(S.value<=0)

Wakeup(S,L);

}

现在我们假设我的电脑有两台打印机,所以S.value的初值为2,表示系统打印机的数目,称为资源信号量。进程B请求打印,那么系统对它执行一次wait操作,执行S.value:=S.value-1语句后S.value减1,S.value的值变为1,表示有一个资源空闲。执行if语句,S.value不小于0,结束。然后又来了一个进程B请求打印,系统对它又执行一次wait操作,执行S.value:=S.value-1语句后S.value减1,S.value的值变为0,表示没有空闲的资源。执行if语句,S.value不小于0,结束。又来一个进程C请求打印,系统对它又执行一次wait操作,执行S.value:=S.value-1语句后S.value减1,S.value的值变为-1,表示有一个进程没有得到打印机资源。执行if语句,S.value小于0,执行block(S,L),进行自我阻塞,放弃处理机,并插入到信号量链表S.L中。此时S.value的绝对值表示了在该信号量链表中已阻塞进程的数目。所以这个时候阻塞的进程为一个,即是进程C。

      系统运行了一段时间后,A进程结束,在结束前执行了signal操作,当执行到S.value:=S.value+1语句时,S.value加1,即S.value变为0.然后执行 if 语句,S.value小于等于0,执行wakeup(S,L),从S.L链表中唤醒C进程。过了一会,B进程结束,同样执行signal操作,S.value变为1,表示有一个资源空闲,执行if语句,S.value不小于等于0,直接结束。接着C进程执行wait操作,S.value变为0。然后A进程结束,S.value变为1。紧接着C进程也结束了,S.value变为2。S.value最终等于初值,等待其他的进程进行资源请求。

17 And信号量

其实是记录信号量的补充,将一个共享资源变成多个资源。

Swait(s1,s2,...,sn)

If (s1>=1 && s2>=1&& ...sn>=1)

   For(i=1,i<=n,i++)

          si--;

Else

{

 PCB(program counter):=addr(wait); //则让权等待并将P原语第1条指令作为断点地址,保存到给进程的PCB(上下文保护区),等回复运行时重执行P原语。

 Block(WLi); //调用进程进入第一个小于1信号量的等待队列WLi

}

Ssignal(s1,s2,...,sn)

 For(i=1,i<=n,i++)

   {

Si++;

Wakeup(WLi);

   }

18 信号量集

赋予信号量集一种通用的能力,自主性更强。可以设置每种信号量的需求量d和下限值t。

Swait(s1,t1,d1,...,sn,tn,dn)

      If (s1>=t1 && ...&& sn>=t2)

         For(i=1,i<=n,i++)

           Si=si-di;

      Else

         {

            PCB(program counter):=addr(wait);

            Block(WLi);

         }

Ssignal(s1,s2,...,sn)

 For(i=1,i<=n,i++)

   {

Si=si+di;

Wakeup(WLi);

   }

一般“信号量集”可以用于各种情况的资源分配和释放。下面是几种特殊的情况:

1)Swait(S,d,d)表示每次申请d个资源,当资源数量少于d个时,便不予分配。

2)Swait(S,1,1)表示一般的记录型信号量。

3)Swait(S,1,0)可作为一个可控开关(当S≥1时,允许多个(并不对资源进行减操作)进程进入临界区;当S=0时禁止任何进程进入临界区)。

由于一般信号量在使用时的灵活性,因此通常并不成对使用Swait和Ssignal。为了避免死锁可一起申请所有需要的资源,但不一起释放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统概念背诵 一、进程管理 1. 进程管理的功能 ① 进程控制 ② 进程同步 ③ 进程通信 ④ 进程(线程)调度 2. 程序顺序执行时的特征:顺序性、封闭性、可再现性。 3. 程序并发执行时的特征:间断性、失去封闭性、不可再现性。 4. 进程由程序段、数据段和进程控制块(PCB)组成。 5. 进程的定义 ① 进程是程序的一次执行。 ② 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 ③ 进程进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 ④ 进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 6. 进程的基本特征:动态性、并发性、独立性、异步性、结构特征(程序+数据+PCB) 7. 进程的状态 三态:就绪状态、运行状态、阻塞状态。 五态:活动就绪、静止就绪、活动阻塞、静止阻塞、运行。 8. 进程控制块(PCB)的组成:进程标识符、处理机状态、进程调度信息、进程控制信息。 9. 临界区:进程中访问临界资源的那段代码叫做临界区。 10. 同步机制必须遵循的原则:空闲让进、忙则等待、有限等待、让权等待。 11. P, V 操作的定义 P(S):S = S − 1; 若S≥0,则当前进程继续运行; 若S<0,则将当前进程插入到S 的等待队列中去。 V(S):S = S + 1; 若S>0,则当前进程继续运行; 若S≤0,则从S 的等待队列中移出一个进程放到就绪队列中去。 12. 信号量的物理意义 S = −n 时,表示有n 个等待进入临界区的进程,当前已有进程在临界区中访问临界资源; S = 0 时,表示不允许任何进程进入临界区,当前已有进程在临界区中访问临界资源; S = n 时,表示临界区是空闲的,该类资源的可用数目为n,可以有n 个进程访问该类资源。 13. 高级通信机制有:共享存储器系统、消息传递系统、管道通信系统。 14. 线程的定义:线程是进程内的一个实体,是处理机调度的基本单位,是程序内部一个单一的顺序控 制流。 15. 引入进程的目的:是为了使多个程序并发执行,提高资源利用率和系统吞吐量。 16. 引入线程的目的:是为了减少程序并发执行时的时空开销,使操作系统具有更好的并发性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值