计算机是如何工作的6

news2024/11/25 10:11:23

因此,往往就把“并行”和“并发”统称为“并发”

对应的编程方式(解决一个问题,同时搞多个任务来执行,共同协作解决)就称为“并发”

此处cpu的百分数,就是你的进程在cpu舞台上消耗时间的百分比

如果有一个进程,把cpu吃到百分百,意味着其他进程没有执行的时间了,这个进程就把cpu

霸占了,很可能造成系统卡顿

PCB中就需要提供一些属性,来支持系统完成对这些进程的调度

状态,优先级,上下文,记账信息

状态

描述,某个进程,是否能够去cpu上执行

有的时候,某个进程会不太方便,就比如,某个进程,通过Scanner等待用户输入内容

但是用户啥时候输入??完全不可控的事情

就绪状态:随时准备好去cpu上执行  操作系统,一打招呼,就上了

阻塞状态:这个进程,当前不方便去cpu上执行,不应该调度他

                 (比如,进程在等待IO,来自控制台的输入输出/硬盘输入输出/网卡输入输出)

其他的状态,暂时不做更多展开

 

程序执行到最后一行的时候,代码就需要暂停下来,不能继续往下走

要等待用户输入一个整数

进程暂停下来,不继续执行,这种等待的状态,就称为“阻塞”

这个阻塞,就是因为等待IO引起的阻塞

等待(wait)和挂起(hung up)

优先级

就比如你电脑上运行了吃鸡和qq,此时吃鸡的优先级是最高的,系统api可以直接设置的

记账信息

针对每个进程,占据了多少cpu时间,进行一个统计

会根据这个统计结果调整调度的策略

因此就需要在下一个轮次进行调整

确保每个进程都不会出现捞不着cpu的情况

计算机   操作系统  核心知识 

操作系统定位:

一个非常重要的软件

1)对下管理各种硬件设备

2)对上给软件提供稳定的运行环境

抽象封装

操作系统中的核心概念,进程

当前咱们的系统,都是“多任务”操作系统

每个跑起来的程序,都称为“进程”

所谓的“同时”其实时并发+并行

进程管理

1.描述。PCB

2.组织,双向链表

  PCB重要属性

1,PID进程的标识符

2,内存指针  进程使用的内存都在哪里,哪个部分放代码/指令,哪个部分放数据

3.文件描述表符  进程使用的硬盘的相关信息

支持进程调度

4,状态           就绪状态  阻塞状态

5,优先级

6,记账信息

7,上下文   支撑进程调度的重要属性  相当于游戏中的存档和读档 

        

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

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

相关文章

java实现UDP数据交互

1、回显服务器 服务器端 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;public class UDP_Server {private DatagramSocket socketnull;public UDP_Server(int port) throws SocketExcepti…

Android图形显示架构概览

图形显示系统作为Android系统核心的子系统,掌握它对于理解Android系统很有帮助,下面从整体上简单介绍图形显示系统的架构,如下图所示。 这个框架只包含了用户空间的图形组件,不涉及底层的显示驱动。框架主要包括以下4个图形组件。…

【JavaWeb】Day37.MySQL概述——数据库设计-DML

数据库操作-DML DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。 1.增加(insert) insert语法: 向指定字段添加数据 insert into 表名 (字段名1, 字段名2) values (值1, 值2); 全部字段添加数据…

CGAL的交叉编译-androidlinux-arm64

由于项目算法需要从Linux移植到android,原先的CGAL库也需要进行移植,先现对CGAL的移植过程做下记录,主要是其交叉编译的过程.。 前提条件: 1、主机已安装NDK编译器,版本大于19 2、主机已安装cmake 和 make 3、主机…

从零自制docker-8-【构建实现run命令的容器】

文章目录 log "github.com/sirupsen/logrus"args...go moduleimport第三方包失败package和 go import的导入go build . 和go runcli库log.SetFormatter(&log.JSONFormatter{})error和nil的关系cmd.Wait()和cmd.Start()arg……context.Args().Get(0)syscall.Exec和…

XC7A35T-2FGG484 嵌入式FPGA现场可编程门阵列 Xilinx

XC7A35T-2FGG484 是一款由Xilinx(赛灵思)制造的FPGA(现场可编程门阵列)芯片 以下是XC7A35T-2FGG484 的主要参数: 1. 系列:Artix-7 2. 逻辑单元数量:33280个 3. 工艺技术:28nm 4. …

element问题总结之el-table使用fixed中 header换行后固定行错位问题/固定列下陷问题

固定列下陷问题 效果图问题描述解决方案1、为table添加ref2、调用节点重新自适应方法doLayout3、在操作表头的时候触发的函数header-dragend绑定doLayout方法4、成功解决 效果图 问题描述 在使用el-table的fixed中,发现如果header拖拽文本折行的时候会出现下陷 解…

Go操作Kafka之kafka-go

Kafka是一种高吞吐量的分布式发布订阅消息系统,本文介绍了如何使用kafka-go这个库实现Go语言与kafka的交互。 Go社区中目前有三个比较常用的kafka客户端库 , 它们各有特点。 首先是IBM/sarama(这个库已经由Shopify转给了IBM),之…

TCP/IP协议、HTTP协议和FTP协议等网络协议简介

文章目录 一、常见的网络协议二、TCP/IP协议1、TCP/IP协议模型被划分为四个层次2、TCP/IP五层模型3、TCP/IP七层模型 三、FTP网络协议四、Http网络协议1、Http网络协议简介2、Http网络协议的内容3、HTTP请求协议包组成4、HTTP响应协议包组成 一、常见的网络协议 常见的网络协议…

uniapp如何配置后使用uni.chooseLocation等地图位置api

在uniapp中想要使用uni.getLocation、uni.chooseLocation ……api的时候我们需要在小程序就开启配置,不然无法使用。 第一步:首先找到manifest.json 第二步:点击源码视图 第三步:在 mp-weixin 加入下面代码 "permission&…

DC-2靶机知识点

知识点总结 1.IP访问与域名访问 2.端口扫描 3.目录扫描 4.cewl密码生成器 5.指纹探测 6.爆破ssh 7.msf的使用 8.rbash逃逸 9.git提权 靶机,攻击机就不多说了,给个靶机地址 https://download.vulnhub.com/dc/DC-2.zip 环境配置 因为访问该靶机…

Python数学建模学习-莱斯利(Leslie)种群模型

Leslie模型是一种用于离散时间的生物种群增长模型,经常用于描述年龄结构对种群增长的影响。在1945年,人口生态学家Patrick H. Leslie(莱斯利)为了研究具有离散年龄结构的种群,特别是对于有不同年龄阶段的生物&#xff…

鸿蒙OS开发实战:【自动化测试框架】使用指南

概述 为支撑HarmonyOS操作系统的自动化测试活动开展,我们提供了支持JS/TS语言的单元及UI测试框架,支持开发者针对应用接口进行单元测试,并且可基于UI操作进行UI自动化脚本的编写。 本指南重点介绍自动化测试框架的主要功能,同时…

三行命令解决Ubuntu Linux联网问题

一开始我找到官方文档描述可以通过命令行连接到 WiFi 网络:https://cn.linux-console.net/?p10334#google_vignette 但是我的 $ ls /sys/class/net 命令无法显示无线网络接口,那么没有无线网卡? 所以我参照其他的博客在终端超级用户的权…

JUC:ScheduledThreadPoolExecutor 延迟任务线程池的使用

文章目录 ScheduledThreadPoolExecutortimer(不建议用)ScheduledThreadPoolExecutor处理异常应用 ScheduledThreadPoolExecutor timer(不建议用) timer也可以进行延迟运行,但是会有很多问题。 比如task1运行时间超过…

FOR循环

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 前面两种循环都要根据条件是否成立而确定循环体的执行,具体循环体执行多少次事先并不知道。 FOR 循环可以控制循环执行的次数,由循环变量控制循环体的…

学透Spring Boot — 005. 深入理解 Spring Boot Starter 依赖管理

前面的文章直观的展示了,使用Spring Boot 集成 Hibernate 和手动集成 Hibernate 之间差距。 一个比喻 工作中使用过Spring Boot一段时间后,我越来越感觉到Spring Boot Starter带来的便利性。 使用手动集成 Hibernate, 就像去电脑城配电脑&…

二叉树的遍历的递归与非递归算法

一.二叉树的遍历: 按照一定规律对二叉树的每个结点进行访问且仅访问一次; 这里的访问:可以是计算二叉树中的结点数据,打印该结点的信息,也可以是对结点进行的任何其它操作! 为什么需要遍历二叉树&#x…

EditPlus来啦(免费使用!)

hello,我是小索奇 今天推荐一款编辑器,是索奇学习JavaSE时入手滴,非常好用哈,小索奇还是通过老杜-杜老师入手滴,相信很多人也是通过老杜认识嘞,来寻找破解版或者准备入手这个间接使用的编辑器~ EditPlus是…

在Ubuntu上搭建Prometheus + Grafana监控系统

1.Prometheus 部署 从官网下载页面找到最新的二进制文件下载 cd ~ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.51.1/prometheus-2.51.1.linux-amd64.tar.gz将文件解压到指定目录 tar xf prometheus-2.51.1.linux-amd64.tar.gz -C /usr/local为…