操作系统(第三周 第二堂)

news2024/11/27 2:31:38

目录

⚽回顾

🏐进程管理(process)

进程理解(总结)

进程

程序到进程

内存中的进程

进程状态

状态类型

 状态转移

进程控制块 

🏀总结


回顾

前一篇文章的重点在于操作系统的结构,从简单结构到UNIX结构(对程序功能进行分级,彼此不能跨域访问),最后到微内核结构(减轻内核的内存,将服务包装起来作为驱动程序等)

现代计算机多采用微内核结构,所以我们电脑在安装操作系统后,很多的驱动程序(音频、USB接口等驱动)需要自己去下载安装,否则便不能使用

进程管理(process)

进程理解(总结)

1、进程可以看作执行的程序,进程也就是程序的一种

2、进程就是操作系统对象,是程序运行的实例。程序只是被动的实体,如存在磁盘上的exe文件

3、进程执行需要分配其对应程序所需要的资源,如:内存、CPU、文件等

4、程序的运行必须保证顺序性,单通道程序靠硬件实现顺序执行,并发程序靠进程来保证顺序链的实现

5、利用shell去运行自己所写的程序实际上就是创建shell进程的子进程,运行程序

6、程序写好保存后只是存储在硬盘中的代码,只有运行后才会创建进程,才是平常所说的跑起来

7、进程创建后也存储在内存当中

进程

程序到进程

一张图说明一个程序是如何变为一个进程的:

从图中可以清楚地看到进程创建后会放到内存中

内存中的进程

 当运行一个程序时,我们就在内存中保存这样一个进程作为程序的实例(程序运行实际的载体)

其中:

1、堆栈(stack):存储程序运行中的临时数据、函数参数和局部变量

2、堆(heap):存储程序运行中动态分配的内存

3、数据:存储程序运行中的全局变量

4、文本段:存储程序代码(二进制文件)

5、堆和堆栈中间的空白:堆和堆栈共享的空间,在程序运行后才会填充上

进程状态

进程在运行时会不停切换状态,用以实现多程序的并行

状态类型

新的(new):进程正在创建(还没创建成功)

运行(running):指令正在执行

等待(waiting):进程等待发生某个事件(如等待I/O指令完成)

就绪(ready):进程等待分配处理器(等待CPU处理)

终止(terminated):进程已经完成执行

 状态转移

1、允许:允许一个程序,shell程序调用系统调用驱动,对程序进行检查,检查允许后建一个新的进程

2、调度器调度:在CPU空闲后会通知内核,内核在多个ready中选择一个调转到CPU执行

3、中断:一个进程正在运行过程中,此时另一个之前运行的进程的特定事件(输入输出事件)完成后,外设会发送中断信号给内核。内核在收到中断后,会在正常running程序的一个时钟周期后将其转为ready状态,先去执行之前运行的进程(中断优先!!)

4、I/O或事件等待:一个进程在运行中遇到I/O或特定事件则会进入等待状态,进入该状态之前会对现场进行保存

5、I/O或事件完成:当一个等待中的进程完成了I/O或特定事件则会发送中断信号给内核,同时由内核将其状态修改为ready

6、退出:进程运行完成后由运行变为终止状态

状态的修改必须由内核完成

进程控制块 

为什么需要PCB?

进程存在内存中,内核为了方便自己对多个进程进行统一的调度和管理,会为多个进程创建目录,这个目录中放置的就是一个又一个进程的进程控制块(自己的类比,仅方便理解)

每创建一个进程后,内核会在自己内部创建这个进程对应的进程控制块(Process Control Block)进程控制块也称为任务控制块,因为每一个进程可以认为是计算机的一个任务

 (上图中就是一个放在内核的内存块(内核中)中PCB的模型)

1、进程状态:记录进程的状态

2、进程编号:进程的pid值,进程检索、跳转时使用

3、程序计数器:记录程序运行到哪个步。计数器本身是一个寄存器,但是和程序并行时维持顺序性有直接的关系,故被分离

4、寄存器:进程状态转移是保存现场使用

5、内存界限:内核为每一个进程划分独立内存,这里记录这个内存的开始和结束位置。操作系统利用内存界限的映射,对每一个进程独立出一个内存空间并映射在相同地址空间(程序运行中所用的实际空间地址对程序员透明

6、打开文件列表:程序中打开文件时,会将文件的资料存储在PCB当中

总结

本文到这里就结束啦~~这堂课的内容较为杂乱、复杂,但是学一学拓展一下知识是非常好的呀~~
如果觉得对你有帮助,辛苦友友点个赞哦~

知识来源:操作系统概念(黑宝书)、山东大学高晓程老师PPT及课上讲解。不要私下外传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1579878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】考研真题攻克与重点知识点剖析 - 第 8 篇:排序

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…

Java每日一题

我的思路: 1.排序 2.固定一个数,然后将问题转换为俩个数之和为固定数的相反数 3.在固定数,后面利用"双指针算法"快速找到两个的和等于-a即可 4.处理这个题的细节问题 1.去重 找到一个结果之后,将left和right指针要跳过前面的重复元…

MLOps 体系结构模型

人工智能继续改变企业,但这导致企业在数字化转型和组织变革方面面临新的挑战。根据 2023 年福布斯报告,这些挑战可以总结如下: 分析技术堆栈围绕分析/批处理工作负载构建的公司需要开始适应实时数据处理(福布斯)。这种…

【保姆级讲解PyCharm安装教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

js获取上周本周下周的日期(附Demo)

目录 前言1. 基本知识2. Demo3. 彩蛋 前言 现在的时间点是:2024-04-08,对应的日期如下(上周、这周、下周) 1. 基本知识 讲述Demo之前,先补充一些基础知识 JavaScript 中的 Date 对象是用于处理日期和时间的对象。它…

博客系统实现

一.准备工作 1.创建项目,把前端写好的博客静态页面拷贝到webapp目录中 2.引入依赖,这里主要用到servlet,mysql5.1.47,jacson2.15.0 3.找到右上角的edit configurations->smartTomcat->进行配置 4.数据库设计&#xff1a…

十四款大型语言模型在《街头霸王III》中一决雌雄

上周在旧金山举办的Mistral AI黑客马拉松上,开发出了一款基于经典街机游戏《街头霸王III》的人工智能(AI)基准测试。这款名为“AI Street Fighter III”的开源基准测试由Stan Girard和Quivr Brain开发,游戏在模拟器中运行&#xf…

【力扣刷题日记】1495.上月播放的儿童适宜电影

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1495.上月播放的儿童适宜电影 表:TVProgram 列名类型program_datedatecontent_idintchannelvarc…

【机器学习】深入解析机器学习基础

在本篇深入探讨中,我们将揭开机器学习背后的基础原理,这不仅包括其数学框架,更涵盖了从实际应用到理论探索的全方位视角。机器学习作为数据科学的重要分支,其力量来源于算法的能力,这些算法能够从数据中学习并做出预测…

产品推荐 | 基于Intel(Altera)Arria 10 10AS027/048打造的水星Mercury+ AA1核心板

01 产品概述 水星Mercury AA1片上系统(SoC)核心板通过结合基于ARM处理器的SoC FPGA、快速DDR4 ECC SDRAM、eMMC flash、QSPI flash、Gigabit Ethernet PHY和RTC形成了一个高性能嵌入式处理方案,结合了CPU系统的灵活性和FPGA原始的、实时的并…

【PolarDB-X从入门到精通】 第四讲:一站式学习源码部署

亲爱的同学们: 大家好!在之前的课程中,我们已经初步了解了PolarDB-X的架构、安装部署PolarDB-X的四种方式以及如何使用Docker和PXD进行安装部署。接下来,我们将进入更加专业的领域——源码编译部署PolarDB-X。 课程主题&#xf…

YOLOV8注意力改进方法:DilateFormer多尺度空洞 Transformer(附改进代码)

原论文地址:原论文下载地址 即插即用的多尺度全局注意力机制 本文提出了一种新颖的多尺度空洞 Transformer,简称DilateFormer,以用于视觉识别任务。原有的 ViT 模型在计算复杂性和感受野大小之间的权衡上存在矛盾。众所周知,ViT 模型使用全局注意力机制,能够在任意图像块…

C语言 函数——函数原型

目录 如何合并成一个完整的程序? 函数原型与函数定义的区别 函数原型的作用 如何合并成一个完整的程序? 问题:在一个函数中调用另一个函数,需要具备哪些条件呢? 若函数的定义出现在函数调用之前 若函数的定义出现…

Java绘图坐标体系

一、介绍 下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐…

对OceanBase中的配置项与系统变量,合法性检查实践

在“OceanBase 配置项&系统变量实现及应用详解”的系列文章中,我们已经对配置项和系统变量的源码进行了解析。当涉及到新增配置项或系统变量时,通常会为其指定一个明确的取值范围或定义一个专门的合法性检查函数。本文将详细阐述在不同情境下&#x…

自动驾驶中的传感器融合算法:卡尔曼滤波器和扩展卡尔曼滤波器

自动驾驶中的传感器融合算法:卡尔曼滤波器和扩展卡尔曼滤波器 附赠自动驾驶学习资料和量产经验:链接 介绍: 追踪静止和移动的目标是自动驾驶技术领域最为需要的核心技术之一。来源于多种传感器的信号,包括摄像头,雷达…

设计模式系列:单例模式

作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 定义 单例(Singleton)模式的定…

CentOS7.9创建本地yum源操作步骤报错解决方法

1.基础信息 CentOS7.9-mini最小化安装的系统,在离线安装rpm时候需要大量依赖,需要花费大量时间去查找依赖包。受于环境限制无法接入互联网使用公开yum源,于是便有了搭建本机yum源的想法,在网上下载CentOS7.9标准版“CentOS-7-x86_…

代码随想录阅读笔记-回溯【组合】

题目 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 思路 本题是回溯法的经典题目。 直接的解法当然是使用for循环,例如示例中k为2,很容…

查分约束学习

问题模型&#xff1a; 有n个变量&#xff1a;&#xff0c;有m个约束条件 令差分数组&#xff0c;可以知道如果x1x2<q&#xff0c;那么与j和i-1有关联 由画图可知&#xff0c;如果有在i-1至j建立的有向图中跑最短路&#xff0c;那么dis[n]即为最小的约束变量 另外&#x…