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

操作系统基础知识

一. 进程

进程是正在运行中的程序,是动态的

进程是资源分配的最小单位

进程的基本特征:动态性,并发性,独立性,异步性

二. 线程

线程在执行过程中的每一个任务就是一个线程

进程是由一个或多个线程组成,线程之间共享进程的资源

线程时CPU调度的最小单位

三. 处理机管理

进程的三种基本状态:运行,就绪,阻塞

(1) 运行:进程占有处理器正在运行

(2) 就绪:进程已经具备运行条件,等待系统分配处理器以便运行

(3) 阻塞:又称睡眠态,是指进程不具备运行条件,正在等待某个事件的完成

进程的三种状态的相互转换

运行→阻塞:等待使用资源或某事件发生。例如等待外设传输、等待人工干预。

阻塞→就绪:资源得到满足或某事件已经发生。例如外设传输结束、或是人工干预完成

就绪→运行:当CPU空闲时,被调度算法选中的一个进程,被CPU分配资源,开始运行。

运行→就绪:CPU分配的运行时间片用完,或出现有更高优先权进程。

四. 进程的4个重要概念

1. 进程同步

同步是指多个相互合作的进程在某些确定点上协调工作顺序的过程。是进程之间的直接制约关系。

例如进程B需要得到进程A的数据才能进行后续工作,没有数据时被阻塞,有数据时才被唤醒。

2. 进程互斥

宏观上互斥也是一种同步。各种进程可以共享系统的资源,但有些资源一次只能供一个进程使用(例如打印机),也称为临界资源。是进程之间的间接制约关系。

当一个进程使用临界资源时,另一个进程必须等待,只有资源被释放,进程才会解除阻塞状态

临界资源:一次仅允许一个进程使用的共享资源称为临界资源,这样进程间就要采取互斥方式来对这种资源进行共享

临界区:人们把进程中访问临界资源的那段代码称为临界区

3. 信号量机制

信号量是解决进程同步与互斥的工具,信号量可以分为两类:

一类是公用信号量,用于实现进程间的互斥,初值等于1或资源数量

另一类是私有信号量,用于实现进程间的同步,初值等于0或正整数

信号量S>=0时,表示某资源的可用数量,当S<0时,表示阻塞队列中等待资源的进程数量

4. PV操作

PV操作用来实现进程同步与互斥。P操作时申请一个资源,V操作表示释放一个资源

实现互斥的方法:信号量设置为1,当进程使用资源时执行P操作,释放资源时执行V操作

实现同步的方法:将信号量S与消息关联,当S等于0表示没有消息,当S不等于0表示有消息。进程B调用P操作信息是否到达,进程A调用V操作通知消息   已经准备好。

五. 进程死锁

当多个进程竞争使用资源时,可能每个进程要求的资源都已经被另一个进程占用。于是,也就没有任何一个进程能继续运行,这种情况称为死锁。

产生死锁的情况主要有:
进程推进顺序不当引起的死锁、同类资源分配不当、PV操作使用不当

死锁的预防方法:

打破互斥条件、打破不可抢占条件、打破占有且申请条件。(保证至少有1个进程获取足够的资源)

设m是资源数量,n是进程数量,w是每个进程需要的资源数量
不死锁公式: m>=n(w-1)+1 [ 资源数量>= 进程数量(每个进程需要的资源数量-1)+1]情况1:m=4,n=3,w=2,不死锁公式m>=n(w-1)+1 代入公式 4>=3(2-1)+1 结果 4>=4,不死锁情况2:m=4,n=3,w=3,不死锁公式m>=n(w-1)+1 代入公式 4>=3(3-1)+1 结果 4>=7,死锁!

六. 进程调度算法

先来先服务算法:进程按照进入就绪队列的顺序占用处理器的资源,
优先数算法:对每个进程设置一个优先数,优先数高的进程先使用处理器资源。
时间片轮转算法:进程使用一次处理器的最长时间称为“时间片”,队列中的进程按时间片轮流使用处理器资源。
分级算法:系统设置多个就绪队列,每个就绪队列中的进程按时间片轮流占用处理器资

七. 存储管理


八. 设备管理

 九. 文件管理

 十. 作业管理

进到内存之后被进程调度算法 

相关文章:

操作系统基础知识

一. 进程 进程是正在运行中的程序&#xff0c;是动态的 进程是资源分配的最小单位 进程的基本特征&#xff1a;动态性&#xff0c;并发性&#xff0c;独立性&#xff0c;异步性 二. 线程 线程在执行过程中的每一个任务就是一个线程 进程是由一个或多个线程组成&#xff0…...

Kompas AI:智能生活的开启者

引言 在现代社会&#xff0c;**人工智能&#xff08;AI&#xff09;**已经深刻地影响了我们的生活和工作。无论是智能家居、自动驾驶&#xff0c;还是医疗诊断&#xff0c;AI的应用无处不在。而在众多AI平台中&#xff0c;Kompas AI 作为一个先进的对话式AI平台&#xff0c;通过…...

Java——二进制原码、反码和补码

一、简要介绍 原码、反码和补码只是三种二进制不同的表示形式&#xff0c;每个二进制数都有这三个形式。 1、原码 原码是将一个数的符号位和数值位分别表示的方法。 最高位为符号位&#xff0c;0表示正&#xff0c;1表示负&#xff0c;其余位表示数值的绝对值。 例如&…...

git使用流程

1.下载git 搜索下载 2.注册github账号&#xff08;打开爬墙工具&#xff09; 创建一个仓库 3.配置邮箱和密码 4.所以找一个文件夹 鼠标右键 选择 open Git Bash here&#xff08;当前文件夹下打开命令行&#xff09; 输入命令 配置用户名和邮箱 5.将建的仓库克隆下来 …...

C++设计模式|结构型 代理模式

1.什么是代理模式&#xff1f; 代理模式Proxy Pattern是一种结构型设计模式&#xff0c;用于控制对其他对象的访问。 在代理模式中&#xff0c;允许一个对象&#xff08;代理&#xff09;充当另一个对象&#xff08;真实对象&#xff09;的接口&#xff0c;以控制对这个对象的…...

C语言 带头双向循环链表的基本操作

带头双向循环链表的基本操作 结构体定义初始化创建新节点头插头删尾插尾删查找在指定位置之后插入删除指定位置的值打印 结构体定义 typedef int DataType; typedef struct LinkNode {DataType data;struct LinkNode* prev;struct LinkNode* next; }LNode;初始化 有两种初始化…...

MATLAB中扩展卡尔曼滤波误差估计的关键点

在MATLAB中&#xff0c;对于扩展卡尔曼滤波&#xff08;EKF&#xff09;的误差估计&#xff0c;主要涉及对系统状态估计的准确性和精度的评估。EKF是一种适用于非线性系统的状态估计方法&#xff0c;它通过递归的方式&#xff0c;结合系统的动态模型和观测模型&#xff0c;来预…...

SpringBoot温习

1.1 Spring Boot ​ Spring Boot是一个开源的Java框架&#xff0c;由Pivotal团队&#xff08;现在是VMware的一部分&#xff09;开发&#xff0c;它是Spring框架的一个模块&#xff0c;旨在简化Spring应用程序的初始搭建以及开发过程。 Spring Boot的核心目标是让开发者尽可能…...

Spring Cloud:构建高可用分布式系统的利器

摘要&#xff1a;本文将介绍Spring Cloud&#xff0c;一个基于Spring Boot的开源微服务架构工具集。我们将探讨Spring Cloud的核心组件、特性以及如何使用Spring Cloud构建高可用、分布式系统。通过本文&#xff0c;读者将了解到Spring Cloud在实现微服务架构中的应用和优势。 …...

IT技术 | 电脑蓝屏修复记录DRIVER_IRQL_NOT_LESS_OR_EQUAL

我的台式机是iMac 2015年的&#xff0c;硬盘是机械的&#xff0c;时间久了运行越来越慢。后来对苹果系统失去了兴趣&#xff0c;想换回windows&#xff0c;且想换固态硬盘&#xff0c;就使用winToGo 搞了双系统&#xff0c;在USB外接移动固态硬盘上安装了win10系统。 最近&…...

windows 下编译 TessRact+leptonica 识别图片文字

目录 1、下载 2. 编译基础依赖库 1.1 zlib 1.2 jpegsr9f 1.3 lpng1643 1.4 libgif 3. 编译tifflib 4. 配置nasm到系统环境中 5. 编译 libjpeg-turbo 6 编译leptonica 7. 编译tesseract 8. 测试验证 1、下载 下载tesseract5.3.2 下载leptonica1.83.1 下载l…...

如何把docker里的内容拷贝出来

如何把docker里的内容拷贝出来 要从Docker容器中复制文件或目录出来&#xff0c;可以使用docker cp命令。以下是基本的命令格式和示例&#xff1a; 命令格式&#xff1a; docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH示例&#xff1a; 假设你有一个名为my_container的…...

OpenAI开始训练新的前沿模型——但GPT-5至少在90天内不会推出

ChatGPT 制造商 OpenAI 今早宣布&#xff0c;已开始训练其新的“前沿模型”&#xff0c;并成立了一个新的安全委员会&#xff0c;由现任董事会成员 Bret Taylor&#xff08;OpenAI 董事会主席兼客户服务初创公司 Sierra AI 联合创始人、前谷歌地图负责人和前 Facebook 首席技术…...

配置 HTTP 代理 (HTTP proxy)

配置 HTTP 代理 [HTTP proxy] 1. Proxies2. curl2.1. Environment2.2. Proxy protocol prefixes 3. Use an HTTP proxy (使用 HTTP 代理)3.1. Using the examples (使用示例)3.1.1. Linux or macOS3.1.2. Windows Command Prompt 3.2. Authenticating to a proxy (向代理进行身…...

mysql binlog查看指定数据库

1.mysql binlog查看指定数据库的方法 MySQL 的 binlog&#xff08;二进制日志&#xff09;主要记录了数据库上执行的所有更改数据的 SQL 语句&#xff0c;包括数据的插入、更新和删除等操作。但直接查看 binlog 并不直观&#xff0c;因为它是以二进制格式存储的。为了查看 bin…...

React + SpringBoot开发用户中心管理系统

用户中心项目搭建笔记 技术栈 前端技术栈 “react”: “^18.2.0”,ant-design-pro 后端技术栈 SpringBoot 2.6.x 项目源码地址 https://gitee.com/szxio/user-center 前端项目搭建 快速搭建一个后端管理系统项目框架 初始化 antDesignPro 官网&#xff1a; https://…...

移动机器人定位与导航实训记录

本次实训主要学习ros-tf的使用、slam使用、机器人自主导航&#xff0c;我先简单发出来&#xff0c;等我整理完再重新编辑一边。...

彩灯控制器设计 74ls160+ne555实现

一、选题背景 数字电子技术在我们生活中的应用非常之广泛,不论是在各个方面都会涉及到它,小到家用电器的自动控制,大到神舟九号和天空一号航天器的设计,都无可避免的要运用它。并且鉴于以理论推动实践及理论实践相结合为指导思想,特此用我们所学的理论知识来实践这次课程设…...

Windows API 速查

Windows API 函数大全 (推荐)&#xff1a;https://blog.csdn.net/xiao_yi_xiao/article/details/121604742Windows API 在线参考手册&#xff1a;http://www.office-cn.net/t/api/index.html?web.htmWindows 开发文档 (官方)&#xff1a;https://learn.microsoft.com/zh-cn/wi…...

智能名片小程序源码系统平台版 人人可创建属于自己的名片 前后端分离 带完整的源代码以及搭建教程

系统概述 智能名片小程序源码系统平台版是一款基于微信小程序的个性化名片搭建平台。该平台采用前后端分离的设计架构&#xff0c;前端提供丰富的界面元素和灵活的布局方式&#xff0c;后端则提供强大的数据支持和功能扩展能力。用户无需具备专业的编程知识&#xff0c;只需按…...

MedGemma 1.5新手必看:从安装到问诊,完整使用流程详解

MedGemma 1.5新手必看&#xff1a;从安装到问诊&#xff0c;完整使用流程详解 你是否曾面对一份复杂的化验单&#xff0c;需要快速理解其临床意义&#xff1f;是否在深夜值班时&#xff0c;想快速确认某个药物的相互作用&#xff1f;或者&#xff0c;作为一名医学生&#xff0…...

Element UI表格样式改造避坑指南:透明化后文字看不清、边框错位怎么办?

Element UI表格透明化实战&#xff1a;解决文字模糊与样式错位的专业方案 当我们在Vue项目中采用Element UI的el-table组件实现透明化效果时&#xff0c;经常会遇到一些棘手的样式问题。本文将深入分析四个典型场景的成因&#xff0c;并提供经过实战检验的解决方案。 1. 透明背…...

Android tinyalsa深度解析之pcm_params_get_periods_min调用流程与实战(一百七十三)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐&#xff1a;《Android系统多媒体进阶实战》&#x1f680; Android Audio工程师专栏地址&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; Android多媒体专栏地址&a…...

RWKV7-1.5B-g1a轻量部署方案:中小企业AI落地首选,年省GPU成本超40%

RWKV7-1.5B-g1a轻量部署方案&#xff1a;中小企业AI落地首选&#xff0c;年省GPU成本超40% 1. 为什么选择RWKV7-1.5B-g1a 在当今AI技术快速发展的背景下&#xff0c;中小企业往往面临高昂的GPU计算成本和技术门槛。rwkv7-1.5B-g1a作为一款基于RWKV-7架构的多语言文本生成模型…...

Blender 3MF插件终极指南:从零开始掌握3D打印文件格式

Blender 3MF插件终极指南&#xff1a;从零开始掌握3D打印文件格式 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 3MF&#xff08;3D Manufacturing Format&#xff09;格…...

EmbeddingGemma-300m效果展示:多语言文本相似度计算实战

EmbeddingGemma-300m效果展示&#xff1a;多语言文本相似度计算实战 1. 引言 文本嵌入模型正在改变我们处理多语言内容的方式。想象一下&#xff0c;你有一个包含中文、英文、法文等多种语言的文档库&#xff0c;如何快速找到语义相似的内容&#xff1f;传统的关键词匹配方法…...

初学Java之范型

范型包装类包装类的定义包装类的作用场景1&#xff1a;我想把数字放进列表里场景2&#xff1a;我想让方法返回"没有结果"场景3&#xff1a;我想用工具类处理数字场景4&#xff1a;泛型方法要求对象类型场景5&#xff1a;我想在同步代码块里用数字作为锁装箱与拆箱定义…...

告别双流!用Vision Transformer (ViT) 搭建单流目标跟踪器OSTrack,实测速度提升40%

单流目标跟踪新范式&#xff1a;ViT驱动的OSTrack实战解析 在计算机视觉领域&#xff0c;目标跟踪技术正经历着从传统双流架构向单流范式的革命性转变。当我们面对复杂场景中的实时跟踪需求时&#xff0c;传统方法的性能瓶颈日益凸显——特征提取与关系建模的割裂处理导致计算冗…...

复现顶刊《金融研究》- 金融周期如何影响房地产价格?(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Lingbot-Depth-Pretrain-ViTL-14 Anaconda环境搭建:创建隔离的Python开发与推理环境

Lingbot-Depth-Pretrain-ViTL-14 Anaconda环境搭建&#xff1a;创建隔离的Python开发与推理环境 你是不是也遇到过这种情况&#xff1a;好不容易跟着教程跑通了一个AI项目&#xff0c;结果过两天想跑另一个项目时&#xff0c;发现各种库版本冲突&#xff0c;报错满天飞&#x…...