OS_chapter4.1_190417_进程管理

6 篇文章 0 订阅

OS_chapter4_190417_进程管理

4.1 process concept


4.1.1 进程基本概念
  • background:程序在并发环境中的问题
  • process(进程):describe and manage the running-procedure of program
    1. the definition of process
    2. the features of process

在这里插入图片描述
在这里插入图片描述

  • the differences between process and program(ppt)
  • the tpye of process(ppt)

4.1.2 进程状态

status

  1. Running
  2. Ready
  3. Block/Wait

状态转化
在这里插入图片描述
Linux中进程状态

  • 挂起态常用于调试时在这里插入图片描述

4.1.3 进程控制块

PCB:(process control block)

  • concept

    1. data struct
      在这里插入图片描述
  • 进程=程序+PCB

  • 程序可以同时有多个进程(PCB)
    在这里插入图片描述

  • PCB中的基本成员(ppt)


PCB of Linux
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0.11 版本Linux 结构简单,可以参考学习

进程的切换

  • context:进程运行环境(CPU环境)
  • 切换过程
    换入进程的context进入CPU(从栈上来)
    换出进程的context离开CPU(到栈上去)

4.2 process management

4.2.1 concept

manage all the behavior during the process lifetime

  1. create a process with process ID
    - 创建一个空白PCB(tag of process)
    - process ID
    - allocate space for process
    - initialize PCB
    - 进程插入就绪队列
    在这里插入图片描述

  2. delete a process
    在这里插入图片描述
    在这里插入图片描述

  3. block a process

  • running/ready --> block
  • 阻塞的时机/事件(4)
  • 参数(parameter): 不同原因构建不同的blocking line
  • block-realization
    1.
  1. wake up a process
  • wake up a process which in blocking line
  • 时机/事件(4)
  • parameter:process ID

进程控制原语

  • 原语:函数
    有若干指令构成的具有特定功能的函数
    具有原子性,其操作不可分割

  • 进程控制原语

  1. 创建原语
  2. 撤销原语
  3. 阻塞原语
  4. 唤醒原语
    在这里插入图片描述
4.2.2 Windows process control

参考实例在这里插入图片描述
在这里插入图片描述
创建进程

  • key point : CreateProcess()
    在这里插入图片描述
    在这里插入图片描述
    结束进程
    ExitProcess:正常结束并返回通知
    TerminateProcess:强制结束(no notification)
    在这里插入图片描述
4.2.3 Linux process control

创建process

  • function : forck(): 创建除initial外的所有进程
  • exec 函数簇:保证子进程执行与父进程不同的功能

  1. fock()在这里插入图片描述
    在这里插入图片描述
  • 复制:
    • 与 father process 相同的代码,数据,堆栈;即有相同行为;
    • 主要区别为: 进程号不同,与时间的信息不同

实例如下:

example 1

  • 子进程时父进程的复制;且二者并发运行
  • printf() 执行两次(子父各一)
    在这里插入图片描述

example 2

  • pid=0 son process (statement 1)
  • pid>0 father process (statement 2)
  • 并发执行,执行顺序有可能颠倒在这里插入图片描述
  • especially
  • son process 有与 father process相同的代码
  • 从其被创建处向下执行(不会递归无限创建子进程)
    在这里插入图片描述

fork()函数实现
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • code shows : 新建子进程处于就绪态

  1. exec函数簇:保证进程执行与父进程不同的功能back

    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值