操作系统——处理机管理

2024-03-21 20:28

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

一、多道程序设计

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

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

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

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

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

——————

2.多道程序的并发执行

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

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

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

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

——————

二、进程的基本概念

3.进程的定义

进程的一些简单定义:

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

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

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

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

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

进程=程序+数据+执行

——————

4.进程的属性

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

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

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

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

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

——————

5.进程与程序的关系

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

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

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

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

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

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

————

三、进程的状态及转换

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

五种状态:

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

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

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

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

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

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

六种状态转换:

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

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

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

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

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

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

——————

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

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

导致挂起的原因:

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

转换关系如下图:

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



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

相关文章

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Linux中查看操作系统及其版本信息的多种方法

《Linux中查看操作系统及其版本信息的多种方法》在服务器运维或者部署系统中,经常需要确认服务器的系统版本、cpu信息等,在Linux系统中,有多种方法可以查看操作系统及其版本信息,以下是一些常用的方... 目录1. lsb_pythonrelease 命令2. /etc/os-release 文件3. h

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess