操作系统 笔记

一.进程

1.进程概念

1.1进程的定义

进程是程序在某个数据集上的一次运行活动

结构 说明
进程控制块 PCB 进程存在的唯一标识,包括进程描述信息、控制信息、资源分配信息等。
程序段 能被进程调度到 CPU 执行的代码。
数据段 进程对应的程序加工处理的原始数据。

1.2.进程的特征

  • 动态性:进程是程序的一次执行,动态产生和消失
  • 并发性:多个进程可以同时存在于内存中,在一段时间内同时运行。
  • 异步性:进程按照各自的速度前进
  • 独立性:进程是一个能独立运行、独立接受调度的单位。

1.3.进程和程序的区别

  • 进程(程序的一次执行过程)是动态的,程序(一组指令的有序集合)是静态的。
  • 进程是暂存的,在内存驻留;程序是长存的,在介质上长期保存。
  • 一个程序可能会有多个进程。

1.4.进程的状态

状态 说明
创建态 进程正在被创建,尚未转到就绪态。
就绪态 进程已处于准备运行的状态,获得了除处理机外的一切资源。
运行态 进程正在处理机上运行。
阻塞态 进程正在等待某一事件而暂停运行,如等待某资源可用或等待 IO 流完成。
结束态 进程正常结束或中断退出。

1.5.进程状态变迁

  • 就绪 ==> 运行: 进程调度
  • 运行 ==> 就绪: 时间片到 / 被强占
  • 运行 ==> 阻塞:请求服务 / 等待信号
  • 阻塞 ==> 就绪:服务完成 / 信号来到

1.6.Linux 进程状态

  • 可运行态: 就绪态和运行态都称为可运行态
  • 阻塞态:浅度阻塞(可以被唤醒)/深度阻塞(不可被唤醒)
  • 僵死态:进程终止执行,释放大部分资源
  • 挂起态:进程被挂起
    在这里插入图片描述

1.7.进程控制块(Process Control Block, PCB)

  • 描述进程状态,资源,和与相关进程关系的数据结构
  • PCB 是进程的标志
  • 创建进程时创建PCB,进程撤销时PCB同时撤销

由此:进程 = 程序 + PCB,每创建一个PCB,就创建了一个进程
在这里插入图片描述

PCB中的基本成员:

  • name (ID): 进程名称(标识符)
  • status:状态
  • next:指向下一个PCB的指针(方便操作系统遍历进程)
  • start_addr:程序地址
  • priority:优先级
  • cpu_status:现场保留区(堆栈)
  • common_info:进程通信
  • process_family:家族
  • own_resource:资源

1.8 进程的同步和互斥

同步:若干个进程为了合作完成某一共同任务,需要相互协调运行步伐,一个进程开始某个操作之前必须要求另一个进程已经完成某个操作,否则只能等待。

互斥:多个进程由于共享了独占性资源,必须协调各进程对资源的存取顺序,以确保没有任何两个或者以上的进程同时进行存取操作。

经典同步问题:生产者和消费者


1.9 孤儿进程和僵尸进程

孤儿进程(Orphan Process) 是指在操作系统中,父进程已经终止或退出,但其子进程仍然在运行的情况。这些子进程失去了与父进程的联系,因此被称为“孤儿进程”。

操作系统会将这些孤儿进程的父进程设置为 init 进程(在 Linux 系统中,通常是 PID 为 1 的进程),由 init 进程负责管理它们的生命周期。


孤儿进程的产生原因

  1. 父进程意外终止:父进程由于崩溃、被强制终止或异常退出,未能正确等待子进程结束。
  2. 父进程未调用 wait()waitpid():父进程没有显式地等待子进程结束,导致子进程在父进程退出后继续运行。

孤儿进程的特点

  1. 父进程为 init:孤儿进程的父进程会被操作系统重新设置为 init 进程。
  2. 不会成为僵尸进程:孤儿进程最终会被 init 进程回收,因此不会成为僵尸进程。
  3. 资源占用:孤儿进程会继续占用系统资源,直到它们自己退出或被终止。

孤儿进程与僵尸进程的区别

特性 孤儿进程 僵尸进程
定义 父进程已终止,子进程仍在运行。 子进程已终止,但父进程未回收其资源。
父进程 被操作系统重新设置为 init 进程。 仍然是原来的父进程。
资源占用 占用系统资源,直到退出或被终止。 不占用系统资源,但占用进程表项。
处理方式 由 init 进程回收。 需要父进程调用 wait()waitpid() 回收。

孤儿进程的处理

  1. 由 init 进程回收:操作系统会自动将孤儿进程的父进程设置为 init 进程,由 init 进程负责回收其资源。
  2. 避免孤儿进程
    • 父进程应显式调用 wait()waitpid() 等待子进程结束。
    • 使用信号处理机制(如 S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值