操作系统:精髓与设计原理 进程描述和控制

2024-05-05 18:58

本文主要是介绍操作系统:精髓与设计原理 进程描述和控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

操作系统必须交替执行多个进程,在合理的响应时间范围内使处理器的利用率最大

操作系统必须按照特定的策略给进程分配资源,同时避免死锁

操作系统可以支持进程间的通信和用户创建进程,它们对构建应用程序很有帮助


进程

一个正在执行中的程序

一个正在计算机上执行的程序实例

能分配给处理器并由处理器执行的实体

一个具有以下特征的活动单元: 一组指令序列的执行、一个当前状态和相关的系统资源集


进程的基本元素: 程序代码 和 与代码相关的数据集

进程控制块(process control block)由操作系统创建和管理  含有充分的信息包括每个进程具备的元素  

 唯一标识符 状态    优先级  程序计数器(程序中即将被执行的下一条指令地址)  内存指针(程序代码和进程相关数据的指针)  上下文数据(进程执行时处理器的寄存器中的数据) I/O状态信息(包括显式的) 记账信息

轨迹(trace) 可以通过列出为该进程执行的指令序列描述单个进程的行为 这样的序列称为进程的轨迹

导致进程创建的原因   新的批处理作业  用户交互登录  操作系统提供服务而创建   由现有的进程派生

导致进程终止的原因   正常完成 超过时限 无可用内存  越界访问  保护错误 算术错误  等待时间超出 I/O失败  无效指令 特权指令 数据误用 操作系统干涉  父进程终止  父进程请求


五状态模型   新建态 就绪态   阻塞态 运行态 退出态

运行态 该进程正在执行

就绪态 该进程做好了准备  有机会就开始执行

阻塞态  进程在某些事件发生前不能执行

新建态  进程刚帮被创建  还未加载到操作系统的可执行进程组当中

退出态  从操作系统的可执行进程中删除



交换:把内存中某个进程的一部分或者全部移到磁盘中   (是一个磁盘I/O操作)  

操作系统就把阻塞的进程换出到磁盘中的挂起队列中(suspend queue)  当内存中没有处于就绪状态的进程时,从磁盘中换入进程

挂起态  换入    就绪态

阻塞态  换出    挂起态


挂起进程  

进程不能立即执行 

进程可能是或者不是在等待一个事件(如果是 阻塞条件不依赖于挂起条件 阻塞事件的发生不会使进程立即被执行)

为阻止进程执行,可以通过代理把这个进程置于挂起状态  代理可以是 进程自己 父进程 操作系统

除非代理显式的命令系统进行状态转移 否则进程无法从该状态中转移

导致进程挂起的原因   交换   用户请求   父进程请求  定时 其他原因


操作系统的控制结构

操作系统为了管理进程和资源 必须掌握每个进程和资源当前状态的信息

操作系统构造并维护这每个实体的信息表 (四种类型  内存表  I/O表  文件表  进程表)

处理器的执行模式  特权态(系统态 控制态 内核态)  非特权态


进程控制块中的信息可以分成三类  进程标识信息  进程状态信息  进程控制信息

进程创建   分配唯一进程标识符  给进程分配空间 初始化进程控制块  保存到操作系统中  扩充其他数据结构

进程切换   某一时刻,正在运行的进程被中断,操作系统指定另一个进程为运行态,控制权交给该进程

进程切换时机     系统时钟中断(进程执行超时) I/O中断  内存失效  陷阱(出现错误)



这篇关于操作系统:精髓与设计原理 进程描述和控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应