操作系统——处理机管理

2024-03-21 20:28

本文主要是介绍操作系统——处理机管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、多道程序设计

多道程序设计是指允许让多个计算问题同时装入一个计算机系统的主存储器,并允许他们共享资源、并发执行的程序设计技术。采用这一技术的系统叫做多道程序系统,简称多道程序。

1.单道程序的顺序执行:

程序的顺序性中:内部顺序性是指一个程序执行时,它的每一个指令必须是按顺序执行。外部顺序性是指对于多个程序,需要按照某种次序一个一个完成,不能有两个以上同时执行。程序的顺序执行即满足内部顺序性又满足外部顺序性。

程序顺序执行的特点:封闭性是指程序在顺序执行的情况下独占系统全部资源的情况。可再现性:顺序执行只要初始条件相同,运行结果也一定相同。

程序的顺序执行的封闭性和可再现性为调试带来便利,但资源的独占性不利于提高资源的利用率。

——————

2.多道程序的并发执行

满足“外部并发性”:即一个程序或计算的执行尚未结束,另一个程序或计算任务的执行已经开始。

在多道程序系统中,程序并发执行,然而对于只有一个处理机的计算机系统,每一个瞬间事实上只有一个程序在执行,由此可见程序的并发执行是指多个程序在宏观上同时进行。

资源共享性也是程序并发性执行明显区别于顺序执行的特征。可以极大提高资源利用率。

并发执行的缺点:由于资源共享性,程序之间产生了相互制约关系。二是失去了顺序执行的封闭性和可再现性,导致出现不确定性。

——————

二、进程的基本概念

3.进程的定义

进程的一些简单定义:

○进程是可以并发执行的计算部分

○进程是一个独立的可以调度的活动

○进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源

○行为的规则叫程序,程序在处理机上执行时的活动成为进程

较为重要的一条定义:○进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。

进程=程序+数据+执行

——————

4.进程的属性

动态性:①进程动态产生,动态执行,动态消亡。②进程有生命周期,在生命周期内进程动态变化。

并发性:多个进程实体可同时存在于主存中,且能在一个时间段内宏观上同时运行。

独立性:进程实体是一个能够独立运行、独立分配资源和独立接收调度的基本单位,而且它有自己的程序计数器和内部状态。

异步性:每个进程按各自独立的不可预知的速度向前推进。

交往性:一个进程在运行过程中可能会与其他进程发生直接的或间接的相互作用。

——————

5.进程与程序的关系

考虑动态性:程序可以作为一种软件资源长期保存,而进程是则是一个动态概念,即:程序是菜谱,进程是厨师烹饪的过程。

考虑并发性:进程具有并发特征,而程序没有。

考虑资源:资源分配是以进程为单位,而不是程序

考虑结构:程序由代码组成,而进程实体包括程序、数据和PCB

考虑生成性:进程可以生成新的进程,而程序不能生成新的程序

对应关系:一个程序多次执行可以对应多个进程,通过调用关系,一个进程也可以包括多个程序。

————

三、进程的状态及转换

6.进程的基本状态及其转换

五种状态:

进程的基本状态模型至少包含5种状态:初始状态、执行状态、阻塞状态、就绪状态和终止状态。其中绝大部分时间处于执行阻塞和就绪状态,因此这三个可以看做三个基本状态。

初始状态:进程刚被创建时还没正式提交给操作系统的处理机调度程序对其管理时的状态。

终止状态:进程执行结束后将退出执行被终止的状态

执行态:进程正在执行的状态

就绪态:进程由于操作系统的原因,没有占用CPU,但具备执行条件只要占用CPU就能执行的等待状态。

阻塞态:进程执行过程中执行了某种阻塞操作(如读写磁盘),必须等待阻塞操作结束后才能进行,这时操作系统把CPU分配给其他进程。这种由于阻塞而导致的等待状态叫做阻塞状态。

六种状态转换:

初始态→就绪态:操作系统完成对进程创建的必要操作后转换为就绪状态。

就绪态→执行态:进程被处理机调度选中而获得处理机时。

执行态→阻塞态:执行进程等待某个事件或某种资源,此时进程无法继续执行直到等待的条件满足。

阻塞态→就绪态:时间完成,即资源得到满足或者等待的事件已经发生。

执行态→就绪态:执行状态的继承被剥夺处理机时发生,可能是出现了优先级更高的进程等。

执行态→终止态:一个进程完成任务自然结束或出现无法克服的错误或被操作系统或其他进程终结。

——————

7.具有挂起状态的进程状态及其转换

随着系统的运行,更多的进程被不断创建,当系统资源不能满足进程运行的需求时
统必须把某些进程对换到磁盘中,暂时不让其参与进程调度,以达到减小系统负荷的目
这个过程称为“挂起”

导致挂起的原因:

①运行需要;②调节负荷需要;③用户请求;④父进程请求;⑤操作系统的需要。

转换关系如下图:

这篇关于操作系统——处理机管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包