首页 > 其他分享 >操作系统基础知识(1)

操作系统基础知识(1)

时间:2023-04-24 22:12:44浏览次数:41  
标签:操作系统 一组 管程 ATM 基础知识 进程 操作 数据结构

什么是管程?

当共享资源用共享数据结构表示时,资源管理程序可用对该数据结构进行操作的一组过程来表示,如资源的请求和释放过程request和release。把这样一组相关的数据结构和过程一并归为管程。

Hansan为管程所下的定义是:“一个管程定义了一个数据结构和能为并发进程所执行的一组操作(操作要在该数据结构上执行),这组操作能同步进程和改变管程中的数据。”。

看不懂上面,说人话!

上面的定义晦涩难懂,简单来说,管程就是定义了一个数据结构和一组操作,这组操作必须要在定义的这个数据结构上进行。

打一个形象的比喻:

人们到一家叫做计算机的银行取钱,这个银行里面就一个空窗口。最早之前,每个人需要从这个窗口爬进去取钱。

这里,银行里面每一个需要取钱的人看作进程,而银行里面的钱可以看做计算机的共享资源,一般是硬件设备或一群共享变量。

每个人都向窗口拥挤,场面混乱不堪。

后面计算机银行不断改进,发明了一种叫ATM的机器(管程),ATM(管程)封装了钱和对外开放了一些存取钱的操作。

这样一来,ATM(管程)在计算机银行的钱和客户之间担任了中介服务的角色。

在一个相对封闭的屋子里面,一次只能服务一个人(让进程互斥使用)。ATM屋子里面有人的时候,其他需要依次排队使用。

一个人(进程)在ATM使用的时间太长也不行,所以需要一个条件变量(condition)来约束他。条件变量可以让一个线程等待时让另一线程进入管程,这样可以有效防止死锁。

管程由哪几部分组成?

管程由四部分组成:

  1.  管程的名称。
  2. 局部于管程内部的共享数据结构说明。
  3. 对该数据结构进行操作的一组过程。
  4. 对局部于管程内部的共享数据设置初始值的语句。

说明引入管程的必要性

  1. 管程的引入是为了解决临界区分散所带来的管理和控制问题。
  2. 在没有管程之前,对临界区的访问分散在各个进程之中,不易发现和纠正分散在用户程序中的不正确使用P,V操作等问题。管程将这些分散在各进程中的临界区集中起来,并加以控制和管理,管程一次值允许一个进程进入管程内,从而既便于系统管理资源,又能保证互斥。

标签:操作系统,一组,管程,ATM,基础知识,进程,操作,数据结构
From: https://www.cnblogs.com/i-rong/p/17348095.html

相关文章

  • 学习《操作系统导论》03
    进程调度:介绍(原书第七章)问题:如何开发调度策略?工作负载假设在具体给出一个目标调度程序之前,先逐步分析,先给出一些列约束,这些约束看上去都非常理想化,不切实际,不过随着后面分析的深入,会逐步放开这些约束,这样最终的方案就是想要的一个比较理想的调度策略了。假设如下:每个工作运......
  • Java基础知识点API之Objects
    一:Objects的概述它是一个对象工具类,提供一些操作对象的方法。二:Objects的成员方法方法名说明publicstaticbooleanequals(Objecta,Objectb)先做非空判断,比较两对象publicstaticbooleanisNull(Objectobj)判断对象是否为null,为null返回true,否则返回falsepublicstaticboolea......
  • 基础知识
    jdkjrejvm联系与区别关键字:JDK,JRE,JVM摘要:JDK是Java语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib合起来就称为jre。一、JDKJDK(JavaDevelopmentKit)是整个......
  • gradle基础知识
       帮助命令:gradle--help查看版本:gradle -v清空所有编译:gradleclean构建:gradlebuild跳过测试构建构建: gradlebuild-xtest第三⽅插件https://plugins.gradle.org/核⼼插件https://docs.gradle.org/current/userguide/plugin_reference.html  ......
  • Windows操作系统网卡显示公用,公用网络改为专用网络
    步骤1.按“Win+R”输入“secpol.msc”,然后点击“确定”打开本地安全策略。步骤2.单击“安全设置”,然后单击“网络列表管理器策略”,找到您的网络名称并双击它。步骤3.在网络属性窗口中,选择“网络位置”选项卡,然后在“位置类型”下选择“专用”,再单击“确定”。 ......
  • 软件的基础知识
    1.键盘和快捷键Ctrl+a全选Ctrl+c复制Ctrl+x剪切Ctrl+v粘贴Ctrl+s保存Ctrl+z回退win+r运行输入cmd命令行工具2.计算器Windows自带的计算器,左上角有程序员计算方式3.文件和文件夹的常用命名•demo文件夹:案例•test文件夹:练习•img文件夹:图片......
  • 王道408操作系统-IO控制方式
    IO控制方式/输入输出控制方式即:用什么样的方式来控制IO设备的数据读写,外围设备和内存之间的IO控制方式有4种1.程序直接控制方式2.中断驱动方式3.DMA方式(直接存储器存取方式)4.通道控制方式......
  • 王道408操作系统-IO设备分类
    按使用特性分类按传输速率分类按信息交换的单位分类......
  • [TV]操作系统
    1.AndroidTV2.GoogleTV从AndroidTV10开始,可以升级到GoogleTV。3.FireTV亚马逊,通过修改Android系统改出来的。4.参考资料AndroidTV与GoogleTV:差异和电视型号http://www.broadcast.hc360.com/2022/0520/18215.htmlGoogleTV和AndroidTV有什么区别?https://w......
  • 操作系统-进程调度算法
      具体功能需求:  (1)数据初始化:数据初始化可通过键盘输入,也可通过构造函数直接生成相应对象。  (2)算法选择功能:程序应向用户提供FCFS、SJ(P)F、优先权算法、时间片轮转算法的选项,由用户键盘输入选择算法,如:   请输入要选择的算法:(0-FCFS;1-SJ(P)F;2-优先权算法;3-时......