当前位置: 首页 > 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的子数组, 但是,他支…...

OpenClaw备份策略:Qwen3-14B镜像环境快速迁移与恢复方案

OpenClaw备份策略:Qwen3-14B镜像环境快速迁移与恢复方案 1. 为什么需要备份OpenClaw环境? 上周我的开发机突然遭遇硬盘故障,导致辛苦配置的OpenClaw环境全部丢失。在经历了8小时的重装和调试后,我意识到必须建立一套可靠的备份方…...

【实战】手搓一个极简MCP服务,最后交给小龙虾调用

未来已来,只需一句指令,养龙虾专栏导航,持续更新ing… 一、MCP 协议核心概念 MCP(Model Context Protocol) 是由 Anthropic 提出的开放式 AI 模型工具连接标准,旨在解决 AI 模型与外部工具之间的标准化通信问题: 本质:基于 JSON-RPC 2.0 协议 构建的轻量级通信框架 核…...

从魔兽团本到元宇宙:一个老玩家关于游戏终极形态的思考

前言这是一场跨越数日的对话。始于一位老玩家对当下游戏的困惑,终于一次关于宇宙递归的哲学探讨。如果你也曾怀念那个和兄弟一起通宵开荒的夜晚,如果你也对满屏的抽卡、648、限定池感到疲惫,如果你隐约觉得游戏不应该只是这样——那么这篇文章…...

动画花园多设备数据同步终极指南:如何实现跨平台追番体验一致

动画花园多设备数据同步终极指南:如何实现跨平台追番体验一致 【免费下载链接】animation-garden 集找番、追番、看番的一站式弹幕追番平台,云收藏同步 (Bangumi),离线缓存,BitTorrent,弹幕云过滤。100% Kotlin/Compos…...

GeoIP2-CN项目的用户调研结果:需求分析与功能规划

GeoIP2-CN项目的用户调研结果:需求分析与功能规划 项目背景与调研目标 GeoIP2-CN项目作为一款小巧精悍、准确、实用的GeoIP2数据库,旨在解决传统GeoIP2数据库在中国大陆用户使用中存在的痛点。本次用户调研通过收集代理工具用户的实际使用反馈&#xf…...

海康云台 ISPAI 二次开发

最近做了个视频会议的项目,硬件用的海康球机DS-2DC4A212IW-DE/C,甲方要求在会议内封装一个云台可以进行拖拽 控制摄像头方向以及焦距的功能,官方给的SDK还不能直接复用,只能手搓了,下面是代码可直接复用,需…...

YOLO12保姆级教程:2025最新目标检测模型,5分钟开箱即用

YOLO12保姆级教程:2025最新目标检测模型,5分钟开箱即用 1. 前言:为什么选择YOLO12? 目标检测是计算机视觉领域最基础也最重要的任务之一。2025年最新发布的YOLO12模型,凭借其革命性的注意力为中心架构,在…...

如何判断提取的RNA是否可用?

在分子生物学实验中,RNA的质量直接决定下游实验的成败。那么,如何科学、系统地评价所提取的RNA是否合格呢?应从浓度、纯度与完整性三个维度综合判断,只有三者均达到标准,才能称为高质量RNA。一、质量评价的三项核心指标…...

Lambda 表达式 —— Java 8 的函数式编程利器

同学们好,今天我们学习 Java 中一个非常重要的特性 —— Lambda 表达式。它让 Java 代码变得更简洁、更灵活,是学习 Stream API、函数式编程的基础。一、为什么要引入 Lambda?先看一个例子:我们想创建一个新线程,在控制…...

OpenScreen快捷键记忆技巧:轻松掌握视频编辑的高效操作组合键

OpenScreen快捷键记忆技巧:轻松掌握视频编辑的高效操作组合键 【免费下载链接】openscreen Create stunning demos for free. Open-source, no subscriptions, no watermarks, and free for commercial use. An alternative to Screen Studio. 项目地址: https:/…...