JavaEE 初阶篇-深入了解操作系统中的进程与 PCB

 🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 关于计算机是如何进行工作的 “常识”

        1.1 关于寄存器、缓存与内存是如何配合 CPU “工作”

        2.0 操作系统概述

        2.1 操作系统内核

        2.2 进程

        2.3 PCB

        2.3.1 PCB 属性 - PID

        2.3.2 PCB 属性 - 内存指针

        2.3.3 PCB 属性 - 文件描述符表

        2.4 进程调度

        2.4.1 PCB 属性 - 进程状态

        2.4.2 PCB 属性 - 进程优先级

        2.4.3 PCB 属性 - 上下文(存档信息)

        2.4.4 PCB 属性 - 记账信息


        1.0 关于计算机是如何进行工作的 “常识”

        一个程序的指令在 CPU 上是如何执行的:指令是存储在内存中的,运行程序的时候,操作系统会先把程序的指令从硬盘(可执行文件),读取到内存中,每执行一个指令,都要经历三个环节:

        1)取指令:把内存中保存的指令,读到 CPU 里。

        2)解析指令:每个 CPU 设计的时候,都约定了指令表,内嵌到 CPU 中。为了搞清楚每一个指令要干啥,后续的参数都是啥意思。

        3)执行指令

        1.1 关于寄存器、缓存与内存是如何配合 CPU “工作”

1)寄存器:

        位于 CPU 内部的一组高速存储器,用于暂存指令、数据和中间结果。寄存器是 CPU 最快速的存储设备,用于临时存储 CPU 执行的指令时需要的数据和地址。

        指令最终会在寄存器(Instruction Register 简称 IR)中进行。需要注意的是,寄存器的类型不止一种,功能也是不一样的,比如,通用寄存器、专用寄存器。

        当 CPU 需要执行指令时,会根据程序计数器( 简称,PC)中的地址从内存中读取指令, CPU 会将读取到的指令存储在寄存器中进行执行,而不是存储在缓存中。

2)缓存:

        位于 CPU 内部或与 CPU 相关联的存储器,用于存储 CPU 访问频繁的数据和指令。缓存是为了解决 CPU 访问内存(主存)速度慢的问题而设计的,通过缓存可以减少 CPU 访问主存的延迟。缓存的访问速度介于寄存器于内存之间。

3)寄存器与缓存之间的区别:

        作用上的区别:

        寄存器,用于临时存储 CPU 执行指令时需要的数据和地址。是最终执行指令的位置。

        缓存,要用于存储 CPU 频繁访问的数据和指令,以加快 CPU 对这些数据和指令的访问速度。

        速度上的区别:

        寄存器存取的速度比缓存快,且缓存的存取速度比内存快。

        2.0 操作系统概述

        操作系统(Operating System)是一种系统软件,操作系统既可以管理计算机硬件资源,也可以管理软件资源。操作系统在计算机系统中扮演着重要的角色,它负责管理和协调计算机系统中的各种资源,包括硬件资源和软件资源。

        1)管理硬件资源:操作系统管理计算机的硬件资源,包括中央处理器(CPU)、内存、硬盘、输入输出设备等。它通过调度算法来分配 CPU 时间片,管理内存的分配和回收,控制硬盘存储和文件系统等,以确保硬件资源能够被有效利用。

        2)管理软件资源:操作系统管理计算机系统中的软件资源,包括进程、文件和用户界面等。它负责创建、调度、暂停、恢复和终止进程,管理文件系统中的文件和目录,提供用户与计算机系统之间的接口,以便用户和应用程序能够方便地利用软件资源。

        目前市场上常见的操作系统主要包括以下几类:Windows 操作系统、macOS、Linux 操作系统和 iOS 等等。

        2.1 操作系统内核

        操作系统内核是操作系统的核心组件,负责管理系统资源、提供系统调度、实现进程管理、文件系统管理等核心功能。内核通常被设计为一个独立的运行在特权模式下的软件,控制着系统的底层硬件和资源。

1)从软件角度讲解操作系统内核:

举个例子:

        现在在敲出一串代码:

System.out.println("hello world");

        写出来的代码就是一个应用程序,这里需要操作显示器,显示器是一个硬件,不是由程序直接操作的,而是通过以上的代码程序“告诉”操作系统,“我要操作显示器”,这样操作系统给你完成这个功能。而操作系统来控制底层硬件主要是由内核完成的。

        操作系统内核 ,就会给应用程序提供一系列的 API 。比如,其中有的 API 是操作显示器,有的 API 是用来响应鼠标的,有的用来操作网卡等等。

        那么以上的代码,这是调用 Java 中内置的标准库函数,这个函数的内部本质上,就需要调用操作系统内核提供的 API ,告知系统,需要控制显示器。进入到操作系统内核中了,内核在通过显示器的驱动程序(显卡驱动),在显示器上绘制对应的内容(字符串)。

2)从硬件角度讲解操作系统内核:

        操作系统内核通过硬件驱动程序,从而来操作硬件。比如,同一种硬件,不同的厂商,产出来的具体细节都会有区别,硬件生产厂商就需要通过驱动程序,告知硬件具体的特点和使用详情。

        2.2 进程

        进程是操作系统进行资源分配和调度的基本单位,操作系统通过管理和调度进程来实现对计算机系统的控制。

        在操作系统中,一个进程通常对应着一个正在运行的程序实例。当用户启动一个应用程序时,操作系统会为该应用程序创建一个新的进程,该进程包含了应用程序的代码、数据和执行状态。这个进程会被操作系统分配资源(如内存、处理器时间等),并在系统中运行。

        内核控制着系统中所有的进程,并负责对进程进行调度、管理和控制。

        2.3 PCB

        在操作系统中,每个进程都有一个对应的 PCB(Process Control Block),PCB 用于记录和管理进程的各种信息。PCB 是操作系统内核中的数据结构,用来维护进程的状态、程序计数器、寄存器状态、进程标识符、优先级、内存分配情况、打开文件列表等关键信息。

        PCB 通常存储在操作系统内核的内存空间中。当一个进程被创建时,操作系统会为该进程分配一块内存空间来存储其对应的 PCB。这块内存空间通常位于内核空间,因为只有内核才能直接访问和修改进程的 PCB。

        进程本身并不在内核中,而是在用户空间中运行。进程是程序的执行实例,包含了代码、数据和执行状态。当一个程序被加载到内存中并开始执行时,就会创建一个对应的进程。

        简单来说,PCB 是进程的结构体,PCB 中包含了进程的各种属性和状态信息。

        操作系统中通常会类似使用链表这样的结构,来把多个 PCB 串起来。

        2.3.1 PCB 属性 - PID

        唯一标识每个进程的标识符。同一个时刻,进程 id 一定是不同的。

        2.3.2 PCB 属性 - 内存指针

        进程运行时,需要消耗一定的硬件资源。内存就是一个关键的资源。比如,一个程序在运行的时候,就会从硬盘加载到内存中,这时候,就会根据内存指针加载这个程序的指令和依赖的数据。

        这指的是一组指针,不光是一个,一组指针就告诉操作系统,该进程,要运行的指令都在内存的那些位置。

        2.3.3 PCB 属性 - 文件描述符表

        记录进程打开的文件和文件描述符等信息。一个进程运行的时候,会操作一些文件,就通过一个 “顺序表” 这样的数据结构,记录下当前这个进程,都打开了哪些文件。

        2.4 进程调度

        进程调度是操作系统中的一个重要功能,用于决定哪个进程可以在 CPU 上执行。进程调度的主要目标是提高系统的性能、资源利用率和响应时间。

1)并行执行:一个核心,同一时刻,只能运行一个进程,完全同时执行。

2)并发执行:CUP 把总的执行时间,切换成若干个小的片段,每个片段执行一个进程,每个片段称为“时间片”,由于时间片比较短,CUP 切换进程的速度很快,人感知不到。站在人的角度来看,就是这若干个进程在“同时执行”,但是本质上不是同时。

        因此,操作系统会按照并发与并行相互搭配,运行所有的进程。PCB 提供常见以下四种属性来支持进程调度:

        2.4.1 PCB 属性 - 进程状态

        记录了进程当前的状态,如运行、就绪、阻塞等。进程调度时需要根据进程的状态来确定哪些进程可以被调度执行。

        2.4.2 PCB 属性 - 进程优先级

        记录了进程的优先级,用于确定进程在就绪队列中的执行顺序。优先级高的进程通常会被优先调度执行。

        2.4.3 PCB 属性 - 上下文(存档信息)

        当前进程调度结束后,需要将未完成,等待下次完成的信息或者数据进行存档,以便下次该进程调度的时候,可以找回上一次调度的信息或者数据。

        2.4.4 PCB 属性 - 记账信息

        包括进程的调度策略、调度算法以及进程的调度参数等等。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT增加线程函数步骤流程

在使用线程的时候,不仅要关注线程开启的时机,同时还要关注线程安全退出,这样才能保证程序的健壮性,如果线程开启的较多,且开启关闭比较频繁,建议使用线程池来处理。开启线程有三种方式:第一种C的…

【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息

实现效果如下&#xff1a; 自用代码记录 <template><div class"map" style"position: relative;"><baidu-mapid"bjmap":scroll-wheel-zoom"true":auto-resize"true"ready"handler"><bm-mar…

怎么轻松制作证件照?推荐这三款制作工具!

在日常生活中&#xff0c;我们经常需要制作各种证件照&#xff0c;如身份证、护照、驾驶证等。为了帮助大家快速、便捷地制作证件照&#xff0c;我将在本文中推荐三款优秀的证件照制作工具&#xff0c;包括国内外的软件&#xff0c;满足不同用户的需求。1.水印云 水印云是一款国…

MQ组件之RabbitMQ学习

MQ组件之RabbitMQ入门 同步调用和异步调用 在微服务架构中&#xff0c;服务之间的调用有同步调用和异步调用两种方式。 我们使用OpenFeign去调用是同步调用&#xff0c;同步调用的缺点很明显&#xff0c;在下图的场景中&#xff0c;支付完成后需要调用订单服务、仓库服务、短…

SpringBoot集成WebService

1&#xff09;添加依赖 <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.3.4</version><exclusions><exclusion><groupId>javax.validation<…

九.pandas绘图基础

目录 九.pandas绘图基础 1-柱状图 --参数stackedTrue堆积 --参数figsize(宽,高) --自定义横坐标 --设置字体&显示负号 2.箱型图 3. 折线图 九.pandas绘图基础 Pandas的DataFrame和Series&#xff0c;在matplotlib基础上封装了一个简易的绘图函数, 使得我们在数据处…

17.WEB渗透测试--Kali Linux(五)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;16.WEB渗透测试--Kali Linux&#xff08;四&#xff09;-CSDN博客 1.ettercap简介与使用…

丘一丘正则表达式

正则表达式(regular expression,regex,RE) 正则表达式是一种用来简洁表达一组字符串的表达式正则表达式是一种通用的字符串表达框架正则表达式是一种针对字符串表达“简洁”和“特征”思想的工具正则表达式可以用来判断某字符串的特征归属 正则表达式常用操作符 操作符说明实…

倪诗韵古琴雷期展示,琴体秀气

音色通透、细腻&#xff0c;灵敏度高&#xff0c;好不好自己听吧&#xff0c;绝对是入门演奏利器。想不想听试音&#xff1f;试音已经发出来了&#xff0c;但是这床琴已经订出去了&#xff0c;不过琴友可以听听雷期的音色&#xff0c;那就关注我吧

Streamlit实战手册:从数据应用到机器学习模型部署

Streamlit实战手册&#xff1a;从数据应用到机器学习模型部署 简介Streamlit核心功能介绍Streamlit的安装创建第一个Streamlit应用界面布局与导航数据处理与展示 Streamlit的进阶应用交互式组件按钮复选框单选按钮滑块 图表与可视化使用Matplotlib绘图使用Plotly创建交互式图表…

视频号下载助手失效了?如何解决下载视频问题!

在刷短视频的时候难免会遇到部分的视频号视频下载不下来&#xff0c;那我们该如何解决视频号下载问题呢&#xff1f; 视频号下载助手解决方案 视频号下载助手失效分为两种情况! 1、可以解析&#xff0c;但不能下载 根据使用视频号下载助手常见的问题&#xff0c;我们发现会有…

超声波气象站和气象雷达有什么区别

TH-CQX5超声波气象站和气象雷达在气象监测领域各自扮演着重要的角色&#xff0c;但它们的工作原理和应用范围存在明显的区别。 首先&#xff0c;超声波气象站的工作原理主要基于超声波在大气中的传播特性。它利用超声波发射器向周围环境发射超声波信号&#xff0c;并通过测量这…

Emotion Prompt-LLM能够理解并能通过情感刺激得以增强

Large Language Models Understand and Can be Enhanced by Emotional Stimuli 情感智能对我们的日常行为和互动产生了显著的影响。尽管大型语言模型&#xff08;LLMs&#xff09;被视为向人工通用智能迈进的一大步&#xff0c;在许多任务中表现出色&#xff0c;但目前尚不清楚…

MES管理系统在生产计划与排产调度流程中的应用

在现代工业生产中&#xff0c;MES管理系统已经成为企业优化生产流程、提升生产效率的重要工具。MES管理系统在生产计划与排产调度中的具体应用&#xff0c;不仅能够帮助企业更好地控制生产过程&#xff0c;还能实现资源的合理配置&#xff0c;从而提高企业的整体竞争力。 首先&…

5G网络架构与组网部署03--5G网络组网部署

1. SA组网与NSA组网 &#xff08;1&#xff09;NSA 非独立组网&#xff1a;终端同时接入4G基站和5G基站&#xff0c;只能实现5G部分功能 &#xff08;2&#xff09;SA组网【最终目标】&#xff1a;5G基站可以单独提供服务&#xff0c;接入的是5G核心网 区别&#xff1a;同一时间…

许战海战略文库|橋頭品牌突破区域局限打透全国市场的4个建议

自宣统元年(公元1908年)起&#xff0c;重庆南岸区海棠溪古石桥边诞生了一家传奇火锅店——桥头火锅。凭借深厚的文化底蕴和独特的风味&#xff0c;历经百年沉淀桥头火锅已成为南岸区乃至中华餐饮文化中的璀璨明珠。 桥头火锅不仅荣获了“中华老字号”和“中国名菜”两项殊荣&a…

Google云计算原理与应用(四)

目录 七、海量数据的交互式分析工具Dremel&#xff08;一&#xff09;产生背景&#xff08;二&#xff09;数据模型&#xff08;三&#xff09;嵌套式的列存储&#xff08;四&#xff09;查询语言与执行&#xff08;五&#xff09;性能分析&#xff08;六&#xff09;小结 八、…

【网络原理】HTTP 请求 (Request)详解

文章目录 &#x1f38d;请求格式&#x1f384;认识URL&#x1f338;query string&#x1f338;关于 URL encode &#x1f340;认识 “方法” (method)&#x1f338;GET方法&#x1f338;POST 方法&#x1f338;GET 和 POST 的区别 &#x1f332;认识请求 “报头” (header)&…

管理能力学习笔记一:角色转身

管理能力学习是为了解决角色转身后面临的更多更复杂的的问题。初晋管理层&#xff0c;需要转变工作习惯&#xff0c;学会分配时间。 角色转身 建立“授权”意识 通过匹配工作内容与下属员工能力&#xff0c;分配工作&#xff0c;避免陷入下属能力不足 -> 不愿授权 -> 下…

MS08-067 漏洞利用与安全加固

文章目录 环境说明1 MS08_067 简介2 MS08_067 复现过程3 MS08_067 安全加固 环境说明 渗透机操作系统&#xff1a;2024.1漏洞复现操作系统: Windows XP Professional with Service Pack 2- VL (English)安全加固复现操作系统&#xff1a;Windows XP Professional with Service …