第二章.1节 进程基本概念

(PS:个人课下整理的操作系统笔记,OneNote直接拷贝过来的,图片看不了就将就一下,配合张伟老师的PPT看效果更好)

一、进程定义

1.进程是具有某一个功能的程序在某一个数据集合上的执行过程,是资源调度分派的独立单位。

  • 调度:是从就绪队列中选择一个进程,不同的调度算法选择的结果不一样
  • 分派:把CPU的使用权交给选择出来的进程

2.进程也是执行中的程序,它包括 进程堆栈段(临时数据)、数据段(全局变量)、程序计数器

3.进程的两个基本特性:动态性(进程实质是程序的一次运行活动,有生命过程)、并发性(系统中可同时存在多个进程,各自互相独立的向前推进)

4.知道程序与进程的区别

  • 程序是完成所要求的功能时所应采取的顺序步骤,是执行指令的有序集合。
  • 进程是程序的一次运行活动,是一个动态概念
  • 区别:
    1. 程序是一个静止的概念,作为一种资源可以永久存放在磁盘上。进程是程序执行的动态活动过程,随程序执行而诞生,随程序执行结束而消亡。
    2. 静止状态的程序和数据是相互独立的信息集合。进程中的程序和数据是一个不可分割的实体。
    3. 一个程序可以对应多个进程

 

5.进程的组成部分:程序、数据、PCB(进程控制块)

  • PCB进程控制块包含管理特定进程的有关信息:进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、IO状态信息
  • 什么是PCB——PCB是操作系统内核中的数据结构,包含管理特定进程所需的信息(如上)

二、进程状态(新、就、运、等、停)

(记法:ready三个入度一个出度,running三个出度,上被下主)

CPU调度决策发生在以下四个黄色进程切换状态

状态转换的说明

  • 新-就绪(抢占):新进程被允许后进入就绪队列
  • 就绪-运行(抢占):当处理机空闲时,系统按照一定调度算法从就绪状态中选择一个使其占用处理机运行。
  • 运行-就绪(非抢占):分配给进程的时间片用完时,或出现一个更紧急的进程时
  • 运行-等待(非抢占):运行的进程需要等待某一事件发生后,才能继续往下运行
  • 等待-就绪(非抢占):处于等待的进程,如果其等待的事件已经发生,表示阻塞的原因已解除,则该进程从等待转为就绪

注意点:

  1. 等待进程在等待原因解除后,虽然再次具备了运行条件,但不能直接运行,而要先转换成就绪,等待调度
  2. 从运行态到就绪态的转换是被动的
  3. 从运行态到等待的转换是主动的
  4. 从等待到就绪的状态转换是由外部事件引起的

 

三、调度——从就绪队列中选择一个进程,不同的调度算法选择的结果不一样

1.三种调度(长期调度、短期调度、中期调度

  • 长期调度——作业调度,决定多道程序的度

choose a job among several ones ready to be brought into memory(into ready queue)

  • 短期调度——CPU调度,

choose a job among several ones ready to run(into cpu)

  • 中期调度medium-term scheduling

将进程从内存或者CPU中移出,降低多道程序的度

作用机制:改善进程组合、释放内存

 

四、上下文切换(context switch)

1.任务——保存CPU当前的运行状态(旧进程状态存在PCB中)并加载新进程的保存状态

2.上下文切换是系统的额外开销,切换时系统不能做其他工作

 

五、创建进程

1.父进程与子进程

父进程可以与子进程并发执行,也可以等待子进程执行完毕,父进程再继续执行

2.fork()创建一个新进程并拷贝父进程的程序和指令,exec()把子进程的内容更新成想要的

3.父进程的返回值=子进程的标号(非0),子进程的返回值=0,作用是防止进程的无限创建

 

六、生产者消费者问题——协作进程的通用范例

Bounded buffer (有限缓冲)问题

1.初始化一个有限缓冲空间,in=0,out=0;

2.当in==out,缓冲区空

当(in+1)%buffersize==out,缓冲区满

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值