操作系统之进程

概念

进程是程序的一次执行过程,是动态的。程序则是存放在磁盘上的可执行文件,属于静态。进程是程序的实体运行过程,是系统进行资源分配和调度的独立单位。

组成

  1. 进程控制块(PCB):

    • PID:进程标识符,用于唯一标识一个进程。
    • UID:用户标识符,标识创建该进程的用户。
    • 进程控制和管理信息:用于进程的管理信息。
    • 资源分配清单:记录当前进程所分配的资源。
    • 处理机相关信息:当前进程的CPU寄存器状态等信息。
  2. 程序段

    包含程序代码。
  3. 数据段

    进程运行过程中产生的数据。

特征

  • 动态性:进程在创建、运行和终止的过程中状态不断变化。
  • 并发性:多个进程可以并发执行。
  • 独立性:进程之间独立运行,互不干扰。
  • 异步性:进程的执行顺序不固定,可以通过调度机制进行控制。
  • 结构性:进程具有特定的结构,包含代码段、数据段等。

状态

  • 三种基本状态

    1. 运行状态:进程占有CPU并执行。
    2. 就绪状态:进程等待CPU分配。
    3. 阻塞状态:进程等待某些资源(如I/O操作)。
  • 创建状态:进程被创建,操作系统分配资源并初始化PCB。

  • 终止状态:进程执行结束,撤销PCB并回收资源。

状态转换

状态转换由PCB中的 state 字段表示。

状态转换详细描述
  • 创建 -> 就绪:进程被创建并准备好执行,但还未获得CPU时间。
  • 就绪 -> 运行:进程被调度到CPU上执行。
  • 运行 -> 阻塞:进程因等待某些资源(如I/O)进入阻塞状态。
  • 阻塞 -> 就绪:阻塞条件解除,进程重新回到就绪状态。
  • 运行 -> 就绪:进程被中断,返回到就绪状态等待下一次调度。
  • 就绪 -> 终止:进程正常结束或因异常退出,进入终止状态。

组织方式

  • 链接方式:通过指针形成队列。
  • 索引方式:使用索引表。

这两种方式都由操作系统进行管理。

进程控制

进程控制的主要功能是有效管理系统中的所有进程,提供创建、撤销、状态转换等功能。通过原语实现这些操作,包括:

  • 创建原语
  • 撤销原语
  • 阻塞原语
  • 唤醒原语
  • 切换原语

阻塞和唤醒原语是成对出现的,原语通过“关中断指令”和“开中断指令”实现原子性。

过程
  • 更新PCB中的信息。
  • 将PCB插入合适的队列。
  • 分配或回收资源。

进程通信(IPC)

  • 定义:进程间通信(Inter-Process Communication, IPC)是指两个进程之间的数据交互。
  • 原因:由于进程是资源分配的单位(包括内存地址空间),各个进程之间的内存空间若不独立访问,容易出现安全问题,因此进程间不能直接访问彼此的地址空间。

方式

  1. 共享存储

    • 基于数据结构的共享:低级通信方式。
    • 基于存储区的共享:高级通信方式。
  2. 信息传递

    • 直接通信方式:进程之间直接进行数据传输。
    • 间接通信方式:通过中介(如消息队列)来传输数据。
  3. 管道通信

    • 半双工通信:在某一时间段内只能单向传输数据。
    • 实现双向通信需要设置两个管道。
    • 管道写满时,写进程会阻塞;管道读空时,读进程会阻塞。

进程的调度策略

  • 先来先服务(FCFS):按照进程请求的顺序进行调度,简单但可能导致长进程阻塞短进程(即“吃豆腐”现象)。
  • 短作业优先(SJF):优先调度估计运行时间较短的进程,能提高系统吞吐量,但可能导致长进程饥饿。
  • 轮转调度(Round Robin):为每个进程分配固定的时间片,轮流执行,适合时间共享系统。
  • 优先级调度:根据进程的优先级来进行调度,高优先级进程优先执行,可能导致低优先级进程饥饿。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值