当前位置: 首页 > news >正文

计算机操作系统

计算机操作系统

1.进程管理

1.1 基础概念

进程&线程
进程是操作系统资源分配的基本单位。一个进程运行时,会获取必要的CPU、内存地址空间,以及运行时必要的IO设备。
线程则是执行调度的最小单位。一个进程会由一个线程或者多个线程执行调度任务。多个线程之前共享进程资源,也有自己的私有资源(程序计数器,方法栈)。

比如一个音乐播放器上,播放器是一个进程,播放器上的听歌和下载音乐就是两个线程

并发&并行
并发是值一段时间内,有多个应用可以一同执行或者发生。看起来每个程序都在进行,但是实际在这段时间内的更小的时间片上,是交替执行的。
并行则是指多个事件可以在同一时刻发生,通过多核CPU可以实现并行,一个时刻一个CPU只有一个程序在运行,强调的是时刻的概念。

内中断&外中断
在操作系统中,主要通过中断来控制不同程序的交互。
当发生中断时,CPU会陷入·核心态,暂停当前运行的进程,由操作系统对中断进行处理
中断一般分为内中断和外中断
内中断:来自CPU内部,和当前的指令有关,也叫异常、陷入
外中断:来自CPU外部,指令无关,外部中断实质是外部设备发起的一些中断请求(键盘、鼠标等)

不同中断之前,存在一定优先级,操作系统优先处理优先级较高的中断
每执行一个指令后,CPU检查是否由中断信号,如果存在中断信号,CPU会保护被中断进程的CPU环境(进程id,寄存器、进程调度信息(进程状态、优先级、事件)等),存在在PCB中

中断

1.2进程管理

为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block)
PCB用于描述和控制进程运行的通用数据结构,记录进程当前状态和进程运行的全部信息,是进程存在的唯一标识。其,主要包括以下信息

  • 进程标识符:pid
  • 处理机状态信息:通用寄存器,指令寄存器,用户栈指针(保存&恢复)
  • 进程调度信息:进程优先级,进程状态,时间信息(等待&执行)

1.2.1进程状态

CPU会更具进程状态进行调度,
进程有以下状态:
就绪态:PCB、内存、堆栈空间等资源分配好,只差CPU的状态
执行态:进程获取CPU正在执行
阻塞态:进程中断放弃CPU的状态
创建状态:拥有PCB,但是其他资源未就绪
中止态:进程结束由系统清理或者归还CPU的状态
在这里插入图片描述

1.2.2进程调度

操作系统通过进程调度决策哪个就绪态的进程可以获取CPU使用权
当进程主动终止、时间片结束、或者中断时,会触发进程调度
进程调度一般分为两种方式:

  • 抢占式:操作系统可以剥夺进程CPU使用权(通用系统,切换频繁,相对公平)
  • 非抢占式:只能由当前进程主动终止(专用系统,进程切换少,不公平)

进程调度主要有以下方法
1.先来先服务算法
不考虑用户体验&吞吐
2.短进程优先调度算法
考虑吞吐&不考虑长进程
3.最短剩余时间优先
考虑吞吐&不考虑长进程
此外,也可能无法预估进程剩余时间
4高优先级调度算法
考虑优先级
5.时间片轮转调度算法
相对公平,但是优先级
6反馈法(高优先级+先来先服务+时间片)
考虑优先级
执行越多,掉优先级
7多级反馈队列调度算法
考虑优先级+吞吐量
执行越多,掉优先级,不同优先级时间片不一致,优先级第时间片高

1.2.3 进程信息同步

临界资源:(哲学家进餐问题)作为共享资源,但是有不能同时被多个进程使用的资源。当有进程在使用临界资源时,其他进程需要根据操作系统同步机制等待资源释放后重新竞争共享资源。
进程同步:主要在于协调临界资源使用次序,保障多个进程并发执行时的资源协调和合作
原则:空闲让进,忙则等待,等待有限,等待让权(CPU)

进程同步

1.fork系统调用创建子进程:此时子进程代码段是与父进程共享以外,其他所有的都是得到父进程的一个副本(内存),但是子进程可以消费父进程的匿名管道,以此通信。管道的本质就是内核在内存中开辟了一个缓冲区,这个缓冲区与管道文件相关联,对管道文件的操作,被内核转换成对这块缓冲区的操作
2.有名管道:内核内存创建有名管道,可以不同进程通信,FIFO,无格式字节流
3.消息队列:消息队列的本质就是存放在内存中的消息的链表,而消息本质上是用户自定义的数据结构。于用户进程写入数据到内存中的消息队列时,会发生从用户态拷贝数据到内核态的过程;同样的,另一个用户进程读取内存中的消息数据时,会发生从内核态拷贝数据到用户态的过程。因此,如果数据量较大,使用消息队列就会造成频繁的系统调用,也就是需要消耗更多的时间以便内核介入。
4.共享内存:允许不相干的进程将同一段物理内存连接到它们各自的地址空间中,使得这些进程可以访问同一个物理内存,最快
5 信号量:共享内存无法保证内存同步,可以借助信号量进行同步。PV操作

6.套接字:不同机器间通信
进程同步

1.2.4 进程死锁

死锁&饥饿
死锁:指多个进程在竞争资源或者由于彼此通信造成永久等待的阻塞现象。
饥饿:长期得不到资源导致进程无法推进
当资源不足或者进程顺序调度不当就会产生死锁
死锁的4个必要条件
1.互斥使用资源
2.资源不可抢占
3.请求保持条件:保持一个资源不释放,有请求新资源
4.环路等待,资源环路

接触死锁就需要破坏上面4个条件之一即可

相关文章:

计算机操作系统

计算机操作系统 1.进程管理 1.1 基础概念 进程&线程 进程是操作系统资源分配的基本单位。一个进程运行时,会获取必要的CPU、内存地址空间,以及运行时必要的IO设备。 线程则是执行调度的最小单位。一个进程会由一个线程或者多个线程执行调度任务。…...

海学会读《乡村振兴战略下传统村落文化旅游设计》2023年度许少辉八一新书

海学会读《乡村振兴战略下传统村落文化旅游设计》2023年度许少辉八一新书...

tkinter树形图组件

文章目录 初步回调函数绑定滚动条 初步 Treeview是ttk中的树形表组件,功能十分强大,非常适用于系统路径的表达。为了知道属性图到底是什么,下面先做个最简单的树形图 其代码如下 import tkinter as tk from tkinter import ttkdct {"…...

多线程的创建

一、基本概念 1 cpu CPU的中文名称是中央处理器,是进行逻辑运算用的,主要由运算器、控制器、寄存器三部分组成,从字面意思看就是运算就是起着运算的作用,控制器就是负责发出cpu每条指令所需要的信息,寄存器就是保存运…...

【django】APPEND_SLASH 路由末尾的斜杠问题

url路由末尾是否加斜杠的规范 加斜杠:表示是目录不加斜杠: 表示是文件 在django中的setting中,默认APPEND_SLASH True, 即当请求的路由末尾没有加斜杠, 如果尝试加上斜杠后,能在后端路由里匹配到,则会自…...

iOS16.0:屏幕旋转

此文写于2022年08月03日,距离iOS16正式版推出还有一个多月的时间,iOS16 beta版本有很多API的修改,今天讨论的是屏幕旋转,基于Xcode 14.0 beta4。 之前的屏幕旋转会报错: [Orientation] BUG IN CLIENT OF UIKIT: Settin…...

Carla学习笔记(二)服务器跑carla,本地运行carla-ros-bridge并用rviz显示

一、服务器跑carla 详见Carla学习笔记(一)服务器跑carla本地显示窗口_Zero_979的博客-CSDN博客 只需要启动服务器端就行: ./CarlaUE4.sh -carla-rpc-port2000 -RenderOffScreen -graphicsadaper1 二、本地下载 carla-ros-bridge 官方库&…...

数学建模--退火算法求解最值的Python实现

目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 """ 1.设定退火算法的基础参数 2.设定需要优化的函数,求解该函数的最小值/最大值 3.进行退火过程,随机产生退火解并且纠正,直到冷却 4.绘制可视化图片进行了解退火整体过程 &…...

地理地形sdk:Tatuk GIS Developer Kernel for .NET Crack

Tatuk GIS Developer Kernel for .NET 是一个变体,它是受控代码和 .NET GIS SDK,用于为用户 Windows 操作系统创建专业 GIS 软件的过程。它被认为是一个完全针对Win Forms 的.NET CIL,WPF 框架是针对C# 以及VB.NET、VC、Oxy 以及最终与.NET 的…...

Day_81-87 CNN卷积神经网络

目录 一. CNN卷积神经网络与传统神经网络的不同 1. 模型图 2. 参数分布情况 3. 卷积神经网络和传统神经网络的层次结构 4. 传统神经网络的缺点: 二. CNN的基本操作 1. 卷积 2. 池化 三. CNN实现过程 1. 算法流程图 2. 输入层 3. 卷积层 4. 激活层 5. 池化层 6. 全连…...

关于mybatisplus报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplat的问题

可能是mybatisplus版本不兼容的问题,我之前用的3.4.0,springboot版本是3.1.3,maven版本是3.8.8,运行的时候报了这个错。现在修改了mybatisplus的版本,如下图: 这样就不报错了。 大家可以在这里找合适的my…...

Spring AOP基础动态代理基于JDK动态代理实现

目录 1. 预备知识-动态代理 1.1 什么是动态代理 1.2 动态代理的优势 1.3 基于JDK动态代理实现 2. AOP 2.1 基本概念 2.2 AOP带来的好处 3. Spring AOP 3.1 前置通知 3.2 后置通知 3.3 环绕通知 3.4 异常通知 3.5 适配器 1. 预备知识-动态代理 1.1 什么是动态代理…...

第一章 计算机系统概述 五、中断和异常、系统调用

目录 一、中断的作用 二、中断的类型 1、内中断(异常) 2、外中断 三、中断机制的基本原理 四、系统调用 1、定义: 2、与库函数的区别 3、按功能分类 4、作用 一、中断的作用 1、“中断”是让操作系统内核夺回CPU使用权的唯一途径 …...

【C语言】文件操作(上)

一.什么是文件 文件是磁盘上的文件,文件中存放的数据不随程序的退出而销毁. 二.文件的打开与关闭 1.文件指针 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等&…...

【Linux】让笔记本发挥余热,Ubuntu20.04设置WiFi热点

Ubuntu20.04设置WiFi热点 由于卧室距离客厅较远,wifi信号太弱,体验极差。鉴于卧室的笔记本电脑是通过网线连接的客厅路由器,因此考虑将这台老破笔记本作为“路由器”,以便发挥它的余热。实验证明,上网速度提升数十倍&a…...

【云平台】遥感地信云平台收录

文章目录 国内1 航天宏图PIE-Engine2 商汤科技3 AI Earth4 EarthDataMiner国外结语国内 1 航天宏图PIE-Engine https://engine.piesat.cn/live-show-list 在这里插入图片描述 2 商汤科技 https://senseearth-cloud.com/map 3 AI Earth https://engine-aiearth.aliyun.com…...

23种设计模式之---单例模式

闲来无事学一下设计模式,希望这23种可以一直更下去,什么时候能更完呢,也许一个月,也许一年,也许断更 设计模式六大原则 本文是23篇的第一篇,在学习设计模式之前,你需要了解下六大原则。 1、开…...

蓝桥杯官网练习题(纸牌三角形)

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 A,2,3,4,5,6,7,8,9 共 99 张纸牌排成一个正三角形(A 按 1 计算)。要求每个边的和相等。 下图就是一种排法。 这样的排法可能会有很多。 如果…...

一辆新能源汽车的诞生之旅:比亚迪常州工厂探营

作为在新能源汽车领域首屈一指的国产品牌,比亚迪近年来可以说是捷报频传,高奏凯歌。 以比亚迪常州工厂为例,据介绍该工厂当初规划设计时定下的生产目标,是年产量能够达到20万辆。然而在2023年上半年,该工厂光是主要销往…...

【算法专题突破】双指针 - 最大连续1的个数 III(11)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:1004. 最大连续1的个数 III - 力扣(Leetcode) 这道题不难理解,其实就是求出最长的连续是1的子数组, 但是,他支…...

IP6520_Q1 36W输出 集成多种快充输出协议的降压SOC 支持 PD2.0/PD3.1/PPS ,QC2.0/QC3.0/QC3+,AFC,FCP

1 特性  符合 AEC-Q100 标准要求  Grade 2: -40℃ ~ 105℃  同步开关降压转换器  内置功率 MOS  输入工作电压范围:7.3V 到 29.5V  输出电压范围:3V~12V  集成输出电压线补功能  输出具有 CV/CC 特性  VIN16V,V…...

大语言模型推理能力与自指认知的架构解析

1. 大语言模型推理能力的底层架构解析大语言模型的逻辑推理能力建立在Transformer架构的多层自注意力机制之上。这种架构设计使得模型能够通过注意力权重动态构建不同概念之间的关联网络。在推理任务中,特定模式的注意力分布会形成类似人类"思维链"的信息…...

认知科学四维智能:构建下一代AGI评估框架与虚拟社区测试实践

1. 项目概述:为什么我们需要一个全新的AGI评估框架?在过去的几年里,我们见证了以GPT系列为代表的大语言模型(LLMs)在文本生成、代码编写乃至多模态理解上取得的惊人突破。作为一名长期关注AI技术发展的从业者&#xff…...

OnmyojiAutoScript:阴阳师手游智能自动化脚本终极指南

OnmyojiAutoScript:阴阳师手游智能自动化脚本终极指南 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 阴阳师手游的日常任务繁重,从御魂副本到百鬼夜行&a…...

CANN/pyasc取小数计算函数

asc.language.adv.frac 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。 项目地址: https://gitcode.com/cann/pyasc asc.language.adv.frac(dst: LocalT…...

WatchGuard Agent多漏洞深度解析:从本地提权到SYSTEM,安全代理为何成为内网最大后门?

引言:当守护者变成入侵者——安全行业最讽刺的悖论 2026年5月6日,全球知名网络安全厂商WatchGuard在其官方安全公告中紧急发布了一批针对Windows终端安全代理的高危漏洞修复补丁。这则看似普通的安全公告,却在全球政企安全圈引发了轩然大波—…...

CANN PyPTO索引添加UB函数

pypto.index_add__ub 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列…...

CANN/metadef FrameworkRegistry类API

FrameworkRegistry类构造函数和析构函数 【免费下载链接】metadef Ascend Metadata Definition 项目地址: https://gitcode.com/cann/metadef 函数功能 FrameworkRegistry构造函数和析构函数。 函数原型 FrameworkRegistry(const FrameworkRegistry &) delete F…...

AI写论文高效秘籍!4款AI论文生成工具,让写论文不再痛苦!

在2025年,随着学术写作进入智能化的时代,越来越多的人开始依赖AI论文写作工具来协助撰写学术论文。在硕士和博士论文等长篇学术作品的写作过程中,许多工具仍然无法满足需求。它们往往缺乏理论的深度,或者逻辑上显得松散&#xff0…...

手把手配置NCJ29D5:基于ARM Cortex-M33的UWB测距开发避坑指南

手把手配置NCJ29D5:基于ARM Cortex-M33的UWB测距开发避坑指南 在物联网和智能汽车快速发展的今天,超宽带(UWB)技术凭借其厘米级精度的定位能力,正在重塑从数字钥匙到室内导航的各类应用场景。作为NXP专为汽车电子设计的UWB芯片,NC…...