操作系统-第二章【上】

2024-09-03 04:36
文章标签 操作系统 第二章

本文主要是介绍操作系统-第二章【上】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.多道程序设计

程序的顺序执行

程序的并发执行

并发程序执行的条件

二.进程的描述

进程的定义

进程的特性及与程序的区别

动态性

并发性

独立性

异步性

结构特性

进程与程序的区别

进程的基本状态及其转换

进程的三种基本状态

 进程三种基本状态间的转换

进程控制块PCB

 PCB的作用

PCB的信息

进程的队列

进程的控制

操作系统的内核

内核中与进程控制有关的机构

进程控制原语

进程创建原语

进程撤销原语

进程阻塞原语

进程唤醒原语

一.多道程序设计

程序的顺序执行

程序在执行时,必须按照某种先后次序进行,仅当前操作执行完后,才能执行后续操作。

因此,在某一时刻,系统的各个部分只有一部分在工作。

例如:“I节点表示输入操作”、“C节点表示计算操作”、“P节点表示打印操作

程序内部的操作不可颠倒,各程序之间的顺序也不可颠倒。

顺序执行的程序的主要特点是“封闭性”、“可再现性

  • 封闭性:程序运行过程中独占全部系统资源,只有程序本身才能干煸系统资源的状态。
  • 可再现性:程序不受外部因素的影响,只要初始条件相同,运行结果就会相同

程序顺序执行不利于提高资源利用率

程序的并发执行

并发执行并不是说这些作业的程序同时被执行

在每一瞬间至多只有一个作业的程序在处理机上执行,即它们是并发执行的,或者说它们执行的时间上有重叠,一个程序的执行尚未结束,另一个程序的执行已经开始。

即:“处理机不必等待一整个程序全部执行结束才能去执行下一个程序,在当前程序执行完某部分不再需要处理机某功能时,这部分功能会转去执行下一个程序

被处理机交替执行的几道程序,称为并发程序

重要:

  • 并发程序失去了“封闭性”和“可再现性
  • 这意味着,并发程序的计算结果不可再现

并发程序执行的条件

定义:

例子:

如果两个程序P1和P2能满足下述条件,它们便能并发执行,否则不能:

即:“两个程序的读集与写集的交集以及写集与写集的交集都为空集时” 

尽管很多程序不能并发执行,但是现代操作系统“利用同步机制实现进程的互斥与同步”将程序有管理的进行并发执行。

二.进程的描述

进程的定义

关于进程的定义,有很多不同的解释,但我们只需要记住,我国的官方解释为:

进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动

进程的特性及与程序的区别

进程有五个特性:“动态性”、“并发性”、“独立性”、“异步性”、“结构特性

动态性

进程的实质是程序的一次执行过程,所以动态性是进程最重要的特性

进程由系统“创建”而诞生,因被“调度”而执行,因得不到资源而暂停,最后因被“撤销”而消亡,进程的生命周期很短暂

并发性

指不同进程的动作在时间上可以重叠,即系统内的多个进程是可以并发执行的。

独立性

进程是一个拥有资源的独立单位,但不是一个可执行的实体,系统独立运行的基本单位是“线程

异步性

进程由于共享资源和协同合作时产生了相互制约关系,造成进程执行的间断性,即进程以各自独立的、不可预知的速度向前推进

(即用户不再清楚进程何时会完成,这完全取决于计算机

结构特性

为使线进程能够独立运行,对每个进程配置了一个“进程控制块(PCB)

从结构上看,每个进程由“程序段”、“数据段”、“进程控制块PCB”组成

这三部分组成了进程的实体我们平时所说的进程都是指这个进程实体

进程与程序的区别

  • 进程是程序处理数据的过程,而程序是一组指令的有序集合
  • 进程具有动态性、并发性、独立性和异步性等,而程序不具有这些特性
  • 从进程结构特性上来看,它包含程序
  • 进程和程序并非一一对应

进程的基本状态及其转换

进程的三种基本状态

操作系统给进程设置了“状态属性”,进城在不同的时刻可能处于不同的状态。

进程状态属性值的多少,可以因不同的系统而异,但大多数系统中的进程都具有以下三种基本状态:

  • 就绪状态(Ready):当进程已分配到除CPU以外的所有必要的资源,只要获得处理机,便可立即执行,这使得进程状态称为就绪状态。在一个系统中,允许有多个进程同时处于就绪状态。
  • 执行状态(Running):当进程已获得处理机,其程序正在处理机上执行,这使得进程状态称为执行状态。在多处理机系统中,允许有多个进程同时处于执行状态。
  • 阻塞状态(Blocked):正在执行的进程,由于等待某事件的发生而无法执行时,便放弃处理机而处于暂停状态。在系统中,允许有多个进程同时处于阻塞状态。

 进程三种基本状态间的转换

  • 处于就绪状态的进程,在调度程序为它分配了处理机之后,该进程便可执行,其状态也变为执行
  • 正在执行的进程,如果因为分配给它的时间片用完,则状态变为就绪
  • 正在进行的进程,如果因为受阻无法继续执行下去,则装啊提变为阻塞,并释放处理机
  • 处于阻塞状态的进程,若其等待的事件已经发生,则状态变为就绪

进程控制块PCB

PCB是为了描述和控制进程的运行而为进程定义的一种数据结构,它是进程实体的一部分,是进程存在的唯一标志

PCB中存放着操作系统所需的用于描述进程的当前情况以及控制进程运行的相关信息

 PCB的作用

  • 标识进程的存在
  • 为系统提供可并发执行的独立单位
  • 为系统控制和管理进程提供所需的一切信息

PCB的信息

  • 进程标识符:系统内部用于标识一个进程的唯一编号,称为进程的内部名
  • 进程的现行状态:标识进程当前所处的状态,作为进程调度程序分配处理机时的依据
  • 处理机的现场保留区:用于保存进程由执行状态转变为其他状态时的CPU现场信息,以便该进程再次被调度运行时恢复处理机现场信息用,以使该进程能够继续正常进行
  • 进程相应的程序和数据地址
  • 进程资源清单
  • 进程优先级
  • 进城同步与通信机制
  • 进城所在PCB连接字
  • 与进程有关的其他信息

进程的队列

把具有相同状态的进程按照某种原则链接在一起组成的队列,其实是PCB的一种组织形式,有时也称作“PCB链

进程的控制

进程控制的主要任务是对进程生命周期进行控制,即要负责进程的创建、撤销以及实现进程之间的状态转换和进程通信等功能

操作系统的内核

将一些与硬件密切相关的模块,例如:中断处理程序、各种常用设备的驱动程序,以及运行频率较高的模块等安排在紧靠硬件的软件层中,并将它们常驻内存,以提高操作系统运行效率,并对他们加以特殊的保护

内核中与进程控制有关的机构

  • 原语操作操作系统内核中由若干条机器指令构成用于完成特定功能的一个过程,该过程是不可分割的
  • 进程管理:进程管理一般都在内核中实现,这主要是因为这些功能模块的运行频率较高,例如,进程调度与分派、进程的创建、进程的撤销等

进程控制原语

进程控制原语是对进程生命周期控制和实现进程状态转换的原语,主要包括:“进程的创建与撤销”、“阻塞与唤醒”、“挂起与激活

进程创建原语

一个进程可以调用“进程创建原语”来创建一个子进程,其步骤为:

  • 申请空闲PCB,为新进程获得其内部标识
  • 为新进程分配内存空间等资源
  • 初始化PCB的内容
  • 将新进程插入到PCB就绪队列 

进程撤销原语

一个进程在完成任务正常结束或因出现某些错误和故障而被迫结束时,应由其父进程调用进程“撤销原语”来予以撤销,以便及时释放其所占有的各类资源,步骤为:

  • 根据被撤销进程的标识符从PCB表中检索出该进程的PCB,从中读出该进程状态
  • 若该进程正处于执行状态,则立即终止执行
  • 若该进程不是执行状态,则把该进程的PCB从相应队列中移去
  • 若该进程还有子孙进程,则递归撤销其所有子孙进程
  • 撤销时,把属于父进程的资源归还给父进程,把属于自己申请的资源归还给系统,释放PCB
  • 若重新调度标志为真,则转进程调度程序

进程阻塞原语

当进程请求某事件尚未出现时,该进程调用“进程阻塞原语”,放弃处理机,使自己从执行状态变为阻塞状态,主要步骤为:

  • 终止进程自身的执行
  • 设置进程自己的状态为阻塞状态
  • 把进程的PCB插入到相应的阻塞队列
  • 转进程调度程序

进程唤醒原语

执行的进程释放某资源后,调用“进程唤醒原语”将应该等待该资源而阻塞的一个进程唤醒变成就绪状态,步骤为:

  • 找出唤醒进程的内部标识
  • 把该进程从相应的阻塞队列中移出
  • 重新设置该进程的状态为就绪
  • 将该进程插入到PCB就绪队列

这篇关于操作系统-第二章【上】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132039

相关文章

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启

操作系统是怎么为不同的程序分配所需的内存空间的

操作系统为不同的程序分配内存空间的过程涉及多个关键步骤,确保每个程序都有其所需的内存资源,同时避免程序之间的冲突。以下是操作系统如何为程序分配内存空间的详细过程: 1. 内存管理的基础概念 虚拟内存:现代操作系统使用虚拟内存机制来为程序提供隔离的内存空间。每个程序运行在其独立的虚拟地址空间中,这使得程序间的内存互不干扰。物理内存:实际的 RAM(随机存取存储器),由操作系统和硬件共同管理。虚拟

操作系统安全保护

操作系统安全概述 概念:满足安全策略要求,具有响应安全机制及安全功符合特定安全标准,在一定约束条件下 能抵御常见网络安全威胁,保障自身安全运行及资源安全 安全等级:根据安全功能和安全保障要求分为 用户自主保护级  系统审计保护级 安全标记保护级 结构化保护级 访问验证保护级 操作系统作用: 负责计算系统的资源管理、支撑和控制各种应用程序运行,为用户提供计算机系统管理接口 是构成网络信息

Linux操作系统命令集(一)

最近开了操作系统的课,弄着虚拟机的linux系统命令学学 文件和目录操作命令: ls:列出目录内容 示例:ls -l 以长格式列出目录内容cd:切换目录 示例:cd /home/user 切换到 /home/user 目录mkdir:创建目录 示例:mkdir new_directory 创建名为 new_directory 的目录rmdir:删除空目录touch:创建空文件或更新文件的时间戳

操作系统分页式存储管理

每次输入地址后,计算出页号,若页号越界,则给出错误提示。否则依次调用FIFO和LRU算法,这里值得注意的是,由于我们的FIFO算法先于LRU算法被调用,那么当在处理FIFO算法时,我们暂且不将位视图相应位置做变化,留到处理LRU算法再做处理。 对于FIFO、LRU算法的缺页,我们分两种情况考虑,第一种是模拟栈内还有空间,那么直接将其入栈。第二种是模拟栈内无空间,要发生置换。发生置换时把模拟栈最底

linux定时监听ssh服务是否启动-------麒麟操作系统永久关闭swap

linux监听ssh服务是否启动 1、监听脚本2、定时任务3、麒麟操作系统,永久关闭swap 1、监听脚本 #在/usr/local/bin目录下新建脚本文件 cd /usr/local/bintouch check_sshd.sh#给可执行权限chmod +x /usr/local/bin/check_sshd.sh 脚本内容如下: #!/bin/bashs

【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议

服务器环境以及配置 【机型】虚机 处理器: Kunpeng-920 内存: 40G 【内核版本】 4.19.90-23.8.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟操作系统 Kylin-Server-10-SP1-Release-Build20-20210518-arm64 【第三方软件】 智能运维系统、mysql数据集群 现象描述 环境描

第二章 《凯斯迈之岛》

就在埃塞克斯大学的两名大学生紧锣密鼓地开发MUD之时,位于大洋彼岸的美国弗吉尼亚大学的两名大学生也在做着自己的游戏,他们名字叫做约翰•R•泰勒(John R Taylor III)和凯尔顿•弗林(Kelton Flinn)。泰勒与特鲁布肖一样是计算机科学专业的学生,而弗林则正在攻读应用数学专业的博士学位。   和当时美国大学校园中的多数学生一样,二人最大的乐趣是使

VMware17 虚拟机下载以及 CentOS8 操作系统安装配置 一条龙全教程

目录 一、安装 vmware workstation 虚拟机  二、安装 CentOS8 操作系统 三、安装 FinalShell 远程连接 一、安装 vmware workstation 虚拟机     安装中...(耐心等待)  到此安装完成,点击启动运行  激活码如下:  MC60H-DWHD5-H80U9-6V85M-8280D