操作系统——进程

/进程*/
背景:

  1. 没有OS之前,资源属于当前程序,只能单程序运行
  2. OS后,开始有多道程序设计
  3. 操作系统能够更好的管理资源

进程:

  1. 资源分配调度基本单位
  2. 保证程序正常运行
  3. 提升操作系统资源利用率

进程的实体:

  1. 标识符:区别进程
  2. 状态:进程状态
  3. 程序计数器:指向下条指令地址
  4. 内存指针:程序代码、进程数据相关指针
  5. 上下文数据:处理器存储的数据
  6. io状态信息:io操作所占用的文件列表
  7. 记账信息:cup时间、时钟数总和

进程控制块PCB:

  1. 描述控制进程运行数据结构
  2. 记录运行的信息
  3. 独立运行的基本单位
  4. 常驻内存

/进程与线程/
进程process:

  1. 有多个线程
  2. IPC通信

线程thread:

  1. 操作系统进行调度的最小单位
  2. 进程中实际的工作单位
  3. 并发多个线程,执行不同任务
  4. 线程共享进程资源,读写同一进程资源数据通信

进程五个状态

  1. 就绪状态:
    分配到除CPU资源以外所有必要资源后
    处于就绪状态的进程形成就绪队列
  2. 执行状态:
    获取CPU
    单处理机只有一个进程处于执行状态
  3. 阻塞状态:
    放弃CPU的状态
    多个阻塞进程形成阻塞队列
  4. 创建
    分配PCB,插入就绪队列
    拥有PCB,其他资源未就绪
    fork函数接口创建进程
  5. 终止状态
    系统清理,归还PCB

/进程同步/

  1. 消费者,生产者(多个)模型;

生产者往缓冲区生产产品,缓冲区+1
消费者取缓冲区取产品,缓冲区-1

操作缓冲区(3步):
临界资源
获取缓冲区数量到寄存器,寄存区增加数量,放回缓冲区

并发执行可能出错:导致数据不一致

  1. 哲学家问题:

拿筷子问题:死锁
原因:彼此间没有通信

  1. 同步:

控制进程间资源使用次序,进程相互合作

临界资源:
共享资源,但是无法被多个线程共同访问的共享资源;
依据操作系统同步机制等待占用资源释放,才能竞争使用

原则:
空闲让进:资源无占用,允许使用
忙则等待:资源占用,进程等待
有限等待;保证有限等待时间能够使用资源
让权等待:等待时,让出CPU

消息队列、共享存储、信号量

线程同步
互斥量、读写锁、自旋锁、条件变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值