1.进程控制

什么是进程控制?

如何实现进程控制:

为了避免把某一进程pbc从一个队列转移到另一个队列,但是并没有把pbc内的状态标志改为新的对应状态,从而导致pcb的状态标志与实际所处队列不一样这一情况发生,需要原语来实现进程控制。 

当关中断指令被执行后,外部中断信号会被暂时地忽略掉,直到开中断指令被执行后,外部中断信号才会被得到执行。

进程控制相关原语:

(1)创建原语

(2)撤销原语

异常结束:比如整数除0等bug

外界干预:用户主动请求撤销进程,如windows任务管理器的杀进程

(3)阻塞原语

(4)唤醒原语

注意阻塞原语和唤醒原语应成对使用,何事引起阻塞就由何事唤醒。

(5)切换原语

进程控制知识总结:

2.进程通信

共享存储:

对共享空间访问互斥指的是当一个进程再往共享空间写数据时,其他进程是不允许访问的,只有该进程访问完共享空间后其他进程才可以访问

管道通信:

读进程最多只有一个,以防读错数据,如果有多个读进程的话,数据一旦被读错了就找不回来了。

消息传递:

进程通信知识总结:

3.线程概念和多线程模型

为什么要引入线程

为了实现同一个进程内的多种功能并发执行,比如qq一边视频聊天一边传送文件,所以引入了线程概念。

需要注意,打印机等系统资源是分配给进程的,而不是分配给线程的。

引入线程后带来的变化:

进程间的切换运行环境就好比在图书馆做不同科目的作业,切换到另一个科目要把目前在看的科目的课本和作业收好,拿出新的科目的课本和作业再开始做;而同一进程内的线程切换就好像做同一个科目的作业,只是换了一本练习册,至于笔记、课本等资源则可以继续共用,非常方便。

线程的属性:

切换不同进程间的线程,会引起进程切换,系统开销较大。

tcb = thread control block  pcb = process control block

线程的实现方式:

(1)用户级线程

用户级线程对用户不透明 = 用户可以清楚看到线程的存在 对操作系统透明 = 操作系统看不到线程只能看到进程

(2)内核级线程:

内核级线程对用户和操作系统都不透明。

多线程模型:

(1)多对一模型

(2)一对一模型

(3)多对多模型

线程与多线程模型总结

4.处理机调度的概念和层次

调度的基本概念:

处理机调度的3个层次:

(1)高级调度(作业调度)

(2)中级调度(内存调度)

补充知识:挂起状态与七状态模型

(3)低级调度(进程调度)

只有保证进程调度的高频率执行,才能保证进程在宏观上是“同时”被执行的

三层调度的联系和对比:

处理机调度的概念和层次知识总结:

5.进程调度的时机、切换与过程、调度方式

进程调度的时机

如果进程还没退出临界区(需要访问的临界资源还没解锁)就进行进程调度,进程调度相关的程序也需要访问就绪队列,但就绪队列也处于上锁状态,因此进程调度无法顺利进行。

有一些临界资源比如打印机属于普通的临界资源,在打印机打印完成之前,进程一直处于临界区内,临界资源处于上锁状态,而打印机又属于慢速设备,如果一直不允许进行进程调度的话就会导致cpu一直空闲着,造成资源浪费。

有的系统中,只允许进程主动放弃处理机,而不允许进程在运行过程中被迫地剥夺处理机资源。而有的操作系统中,进程可以主动放弃处理机,当有更紧急的任务需要处理时,也会强行剥夺处理机。(被迫放弃)。由当前进程是否可以强行剥夺处理机资源,引出了进程调度的方式。

进程调度的方式

进程的切换与过程

广义的进程调度 = 狭义进程调度(选择一个进程) + 进程切换

知识回顾与重点

6.调度算法的评价指标

cpu利用率:cpu忙碌时间 / 总时间

系统吞吐量

周转时间

等待时间

响应时间

知识回顾与重点

7. 调度算法FCFS、SJF、HRRN

知识总览

先来先服务算法

短作业优先算法

非抢占式短作业优先算法

抢占式短作业优先算法(最短剩余时间优先算法SRTN)

高响应比优先算法

知识回顾

早期批处理系统很贵,所以不追求用户体验而是更追求系统性能。

8.调度算法 时间片轮转、优先级调度、多级反馈队列

知识总览

时间片轮转调度算法

增大程序响应时间:系统中有10个进程并发执行,如果时间片为1秒,则一个进程被响应最长可能需要等9秒。若用户在自己进程的时间片外通过键盘发出调试命令,可能需要等9秒才能被系统响应。

优先级调度算法

非抢占式优先级调度算法

抢占式优先级调度算法

多级反馈队列调度算法

如果有源源不断的短进程到来的话,被降到低优先级队列的长进程就有可能长期得不到服务而导致饥饿。

知识总览

8.进程同步、进程互斥

进程同步

进程同步机制:保证并发执行的各个进程的推进次序是按我们想要的顺序来依次推进的。

进程互斥

知识回顾

9.进程互斥的软件实现方法

知识总览

单标志法

若turn初值为0,而p1先上处理机运行,因为turn != 1满足条件,所以代码会一直卡在p1的进入区做死循环,无法跳过该段代码执行后续内容,p1进程无法访问临界区。

双标志先检查法

双标志后检查法

引发问题的关键就是进程并发执行的异步性。如果遇到了不一样的算法,要学会自己分析哪一部分代码是进入区,如果进入区要执行多个操作的话,有没有可能因为异步性的存在而产生问题。

有效理解peterson算法的关键,在于手动模拟各个进程并发执行过程中发生进程切换的情况,对各个进程的进入区代码进行排列组合。

perterson算法虽然集前三种算法之所长,但是仍未遵循让权等待原则。即使p0进程暂时无法进入临界区,但是依然会占用cpu运行while循环,造成忙等的现象。

知识回顾

10.进程互斥的硬件实现方式

知识总览

中断屏蔽方法

不适用于多处理机的原因是开/关中断指令只是针对单处理机的,假如处理机a执行了关中断指令,那处理机a上运行的进程就不会被中断,可以一直访问临界区。然而如果处理机b也做了类似的处理,就有可能出现两个处理机上的进程同时需要访问临界区的情况,违背了临界资源的互斥访问原则。

TestAndSet指令

Swap指令

知识回顾

操作系统学习笔记02【进程控制——进程互斥的硬件实现方法】【自用】相关推荐

  1. 操作系统学习笔记-2.1.3进程控制

    操作系统学习笔记-2019 王道考研 操作系统-2.1.3进程控制 文章目录 3.进程控制 3.1知识概览 3.2 基本概念 3.2.1什么是进程控制? 3.2.2如何实现进程控制? 3.3进程控制相 ...

  2. 计算机操作系统学习笔记 第二章、进程与线程

    文章目录 1 进程和线程 1.1 进程的概念和特征 1.1.1 进程的概念 1.1.2 进程的特征 1.2 进程的状态与转换 1.3 进程的组织 1.4 进程控制 1.5 进程通信 1.5.1 共享存 ...

  3. 操作系统学习笔记 第二章:进程管理(王道考研)

    本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系统概述 ...

  4. 操作系统学习笔记-2.1.4进程通信

    操作系统学习笔记-2019 王道考研 操作系统-2.1.4进程通信 文章目录 4进程通信 4.1知识总览 4.2前置知识:什么是进程通信? 4.3共享存储 4.4 管道通信 4.5消息传递 4.6小结 ...

  5. 操作系统学习笔记-2.1. 2进程的状态与转换

    操作系统学习笔记-2019 王道考研 操作系统-2.1. 2进程的状态与转换 文章目录 2进程的状态与转换 2.1知识概览 2.2进程的状态-三种基本状态 2.3进程的状态-另外两种状态 2.4进程状 ...

  6. 操作系统学习笔记-2.1.1.进程的定义、组成、组织方式、特征

    操作系统学习笔记-2019 王道考研 操作系统-2.1.1.进程的定义.组成.组织方式.特征 文章目录 2.1.1.进程的定义.组成.组织方式.特征 1.1知识概览 1.2进程的定义 1.3进程的组成 ...

  7. 操作系统学习笔记——第二章 进程的描述与控制(二)

    2.3 进程控制 进程控制是对系统中的全部进程实施有效的管理,包括进程创建.终止.进程阻塞和唤醒. 一.进程的创建 二.进程的终止 三.进程的阻塞与唤醒 四.进程的挂起与激活 一.进程的创建 创建原语 ...

  8. 操作系统学习笔记(1.计算机系统概述 2.进程与线程)

    文章目录 第一章 计算机系统概述 操作系统的概念.功能 操作系统的特征 操作系统的发展与分类 操作系统的运行机制 中断和异常 系统调用 操作系统体系结构(上) 操作系统体系结构(下) 操作系统引导 虚 ...

  9. 王道操作系统考研笔记——2.3.3 进程互斥的硬件实现方法

    文章目录 2.3.3 进程互斥的硬件实现方法 2.3.3.1 中断屏蔽方法 2.3.3.2 TestAndSet指令 2.3.3.3 Swap指令 2.3.3.4 小结 2.3.3 进程互斥的硬件实现 ...

最新文章

  1. Windows10+Python3.6(Anaconda3)+OpenCV3.4安装配置
  2. hadoop 2.4.1 集群安装一
  3. 【数据结构与算法】之深入解析“不同路径III”的求解思路与算法示例
  4. APR 以及linux安装apr 库目的
  5. Hystrix降级逻辑中如何获取触发的异常 1
  6. LaTeX设置参考文献条目行距以及条目内行距的方法
  7. 华为将推出智能显示屏产品:不同于传统电视机
  8. React Ant Design UI 图片上传组件 代码片段
  9. 雅虎因发送垃圾短信面临50万人集体诉讼
  10. 微信开发——带参数二维码的使用
  11. Android Studio Debug按钮简介
  12. win10显卡驱动怎么装_还在花钱装系统吗,3分钟教你怎么安装纯净版Win10
  13. ds—at1000s说明书_DS-1000操作手册.pdf
  14. 前端Echarts数据可视化
  15. OSPF认证、虚链路、过滤、track
  16. display: flex自我理解
  17. 视频二维码在线生成器怎么用?
  18. 1736. Latest Time by Replacing Hidden Digits
  19. 今天我的app上线了庆祝一下
  20. J6412四网口迷你主机折腾虚拟机教程

热门文章

  1. cassandra vs. voldemort
  2. 【转载】开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)
  3. 基于高德导航的Android大作业
  4. 这款必应出品的壁纸软件也太棒了
  5. MP4文件格式的相关内容
  6. Restful API 接口规范
  7. 一切的闹闹哄哄,只是他在水帘洞躲避风沙那晚做的一个梦
  8. edge打开pdf不显示印章_win10 Edge浏览器打不开pdf文件的解决方法
  9. mock.js简单使用
  10. 斐波那契数列(经典兔子繁殖问题)