操作系统概念 进程/Process 第三章笔记

2017年9月20日
13:56

写在前面

本笔记仅仅是本人在上课时的一些随手记录,并不完整也不完全正确。

如有错误,请在评论中或直接联系我指正,谢谢!

原始文件下载:(mht)(pdf)

Notion of process
Various features of processes
communication

Main Problems

1. process vs. program
2. pcb 分配资源 初始化pcb
3. process fork()

  • 创建,删除 进程树
  • 状态图
  • 动作/操作

4. Scheduling:

  • Short term
  • Medium term
  • Long term

5. Communication
6. Process context

Process Concept

Process Defintion
Process State
Process Control Block (PCB)

Problems for Process Management

Dispatch CPU
Allocate resource (deadlock hungry) Implement the process communication

Process Definition

Process —- a program in execution; process execution must progress in sequential fashion
一个具有独立功能的程序在一个数据集合上的一次动态执行过程

Process includes

  • Program counter
  • Stack
  • Data section
  • *heap

    Process in Memory

一些进程概念和特性:

  • 真实描述任务的并发执行
  • 进程由程序数据两部分组成
  • 进程是动态的
  • 一个程序对应多个进程
  • 进程具有创建其它进程的功能

进程特征:

  • 结构特征:程序段、数据段、PCB
  • 动态性:程序的一次执行过程
  • 并发性:多个进程同存于内存中,在一段时间中同时运行
  • 独立性:进程独立运行、独立分配资源的基本单位
  • 异步性:独立、不可预知
  • 交互性:需要交互

    Process State

注意

进程和程序的联系与区别

PCB(Process Control Block)

Content(Brief)

  • Process state
  • Program counter
  • CPU registers
  • CPU scheduling information
  • Memory-management information
  • Accounting information
  • I/O status information

表本身…

系统把PCB组织在一起,并放在内存固定区域,构成PCB表

  • 链表
  • 索引表

PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度

PCB组织方式 — 链接方式

PCB组织方式 — 索引方式

PCB内容:

进程标识符、处理机状态、进程调度信息、进程控制信息

进程标识符
  • 内部标识符:
    操作系统赋予,一个进程的序号
  • 外部标识符:
    创建者提供,由字母、数组组成。由用户(进程)在访问该进程时使用。
处理机状态

寄存器中内容

  • 通用寄存器
  • 指令计数器:存放了要访问的下一条指令的地址
  • 程序状态字PSW:状态信息,(条件码、执行方式、中断屏蔽标志)
  • 用户栈指针:存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶
进程调度信息:
  • 进程状态
  • 优先级
  • 其他信息:与进程调度算法有关
  • 事件:进程由执行状态转变为阻塞状态所等待发生的事件、即阻塞原因
进程控制信息:
  • 程序和数据的地址
  • 进程同步和通信信息:消息队列指针、信号量等(可能全部或部分在PCB中)
  • 链接指针:当前进程PCB所在队列中下一个进程PCB地址

CPU Switch 所谓上下文

CPU Switch From Process to Process

Process Scheduling

Objective:

  • Maximize CPU usage
  • Quickly switch processes onto CPU for time sharing

    Process Scheduler

Select processes for next execution on CPU

Maintains scheduling queues of processes

  • Job queue
  • Ready queue
  • Device queue

  • Short-term
  • Mid-term
  • Long-term

进程上下文

进程执行活动全过程的静态描述

  • 计算机系统中执行该进程有关的各种寄存器的值
  • 程序段在经过编译之后形成的机器指令代码集(正文段)、数据集
  • 各种堆栈值
  • PCB结构

进程操作:

进程创建:

父进程创建子进程,创建了一个进程树
通常来说,以进程标识符(pid)标识

资源共享:(三种情况)

  • 父进程子进程共享所有资源
  • 子进程分享父进程的资源子集(一部分)
  • 父进程和子进程不分享资源

执行(两种)

  • 父进程子进程同时执行
  • 父进程等待子进程结束

命名空间

  • 子复制父
  • 子加载了程序

UNIX例子

  • Fork()创建
  • Exec()替代fork()所创建进程(用新程序覆盖内存空间)

    过程:

  1. 申请空白PCB。
  2. 为新进程分配资源。
  3. 初始化进程控制块。
  4. 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

进程结束/终止

Process executes last statement and asks the operating system to delete it (exit)

  • Output data from child to parent(via wait)
  • Process’ resources are deallocated by operating system

Parent may terminate execution of children processes (abort)

  • Child has exceeded allocated resources
  • Task assigned to child is no longer required
  • If parent is exiting

    Some operating systems do not allow child to continue if its parent terminates
    All children terminated - cascading termination(级联终止)

进程的挂起与激活

Pending

  • 出现了进程挂起的事件 比如,用户进程请求将自己挂起
  • 或父进程请求子进程 suspend()

Activation

  • 出现了进程激活的事件
  • Active()

进程交互(通信)

IPC

  • Shared memory共享存储器
  • Message passing消息传递
  • Pipe管道

Shared memory

Message passing

  • 消息传递机制都是用得最广泛的一种进程间通信的机制。
  • 在消息传递系统中,进程间的数据交换,是以格式化的消息(message)为单位的;
  • 程序员直接利用系统提供的一组通信命令(原语)进行通信,大大减化了通信程序编制的复杂性,而获得广泛的应用。
  • 消息传递系统的通信方式属于高级通信方式。
  • 又分为直接通信方式和间接通信方式两种。

Pipe

所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。

向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;
而接受管道输出的接收进程(即读进程),则从管道中接收(读)数据。

由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信

首创于UNIX系统,由于它能有效地传送大量数据,因而又被引入到许多其它操作系统中

Producer-Consumer Problem写作进程的通用范例

Producer process produces information

Consumer process consume information

  1. 进程的状态有哪几种?请画出进程间基本的转换图,并说明不同状态之间怎样转换(语言描述转换图)

  2. PCB的信息包括哪些,请简单说明

  3. 调度队列有哪几种?请简单说明。

  4. 进程调度有哪几种?请分别简单说明一下。

  5. Process Context包括哪些信息?简单说明

  6. 在什么情况下需要创建进程?简单说明。

  7. 简述进程创建过程。

  8. 什么情况下需要终止进程,简单说明。

  9. 什么情况下进程被阻塞?什么情况下进程被唤醒?简单说明

  10. 进程间通信有哪几种方式?简述每一种方式。