软考中级—— 操作系统知识
进程管理
操作系统概述
操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。
操作系统的特征:并发性、共享性、虚拟性、不确定性。
操作系统的功能:进程管理、存储管理、文件管理、设备管理、作业管理。
分类:批处理操作系统、分时操作系统(轮流使用CPU工作片)、实时操作系统(快速响应)、网络操作系统、分布式操作系统、微机操作系统(Windows)、嵌入式操作系统
计算机启动基本流程:BIOS → 主引导记录 → 操作系统
进程
组成:进程控制块PCB(唯一标识)、程序(描述进程要干什么)、数据(存放进程执行时所需数据)
状态:就绪、运行、等待
前趋图
前趋图可以确定两点:任务之间的并行关系、任务之间的先后顺序
进程资源图
进程资源图:用于表示进程和资源之间的分配和请求关系
P代表进程,R代表资源,R方框有几个圆就表示有几个资源,例如在本图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。
- 阻塞节点(看需要的资源是不是已经全部分配出去了):某进程所请求的资源已经全部分配完毕,无法获取,该进程被阻塞了无法继续。如图中P2(R2分配来,但是R1满了,没有足够的资源让P2执行,已经将仅有的两份资源给了P1/P3);
- 非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如图中P1、P3;
当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
同步与互斥
互斥:同一时刻只能由一个任务单独使用,使用加锁,使用完后释放,如打印机;
同步:多个任务可以并发执行
临界资源:各进程间需要以互斥方式对其访问的资源
临界区:指进程中对临界资源实施操作的代码,比如synchronized代码
互斥信号量:初值为1
同步信号量:初值一般是共享资源的数量
信号量操作
P操作:申请资源,S=S-1【S>=0时表示可用的资源数量,S<0则表示等待资源】,若S>=0,则执行P操作的进程继续执行;若S<0,则该进程阻塞,将其插入阻塞队列;
V操作:释放资源,S=S+1,若S>0,表示当前还有资源可用,则执行V操作的进程继续执行;若S<=0,表示当前存在阻塞进程,则从阻塞队列中唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
是先操作完再判断,先P后V
信号量操作:先P后V,才开始计算(S1、2、3、4…都是代表资源使用)
存储管理
页式存储管理
将进程空间分为一个个页,假设每个页大小为4K,同样的将系统的物理空间也分为一个个4K大小的物理块(页帧号),这样,每次将需要运行的逻辑页装入物理块中,运行完再装入其他需要运行的页,就可以分批次运行完进程,无需将整块逻辑空间全部装入物理内存中。
优点:利用率高、碎片小(只在最后一个页有)、分配及管理简单
缺点:增加系统开销、可能产生抖动现象
解析:考逻辑地址和物理地址的转换。页式存储的表示:高位【页号】+ 低位【页内地址/页内偏移】。页内地址是不会变的,不论是物理地址还是逻辑地址,只有页号的根据映射会变。页内地址就是页面大小。
- 4K=4*1024=212=(24)^3,表示3位16进制。因此D16H表示页内地址,1表示页号,其对应物理块号为3,因此物理地址为3D16H
页面置换算法
进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入物理块中执行完。
缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低。
- 最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。
- 先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低)
- 最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象。
快表
快表是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用于存放当前最频繁的少数活动页面的页号。
快表存储于Cache中,慢表将页表存储于内存中,因此慢表需要访问两次内存才能取出页,而快表则是一次Cache和一次内存。
段式存储管理
将进程空间分为一个个段,每段由段号+段内地址组成,与页式存储不同的是,每段物理大小不同,分段式根据逻辑整体分段的。
地址表示:段号+段内地址(段内偏移),段内地址不能超过段号对应的段长,否则越界错误;而此地址对应的内存地址为:段号对应的基址+段内地址
段表:段长+基址,
优点:程序逻辑完整,修改互不影响
缺点:内存利用率低,内存碎片浪费大
段页式存储管理
两者结合,对进程空间先分段,再分页
优点:空间浪费小,存储共享容易,能动态连接
缺点:复杂性和开销增加,执行速度下降
文件管理
计算机系统中采用的索引文件结构如下图所示:
系统中有n个索引节点,直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,则可存4KB*10=40KB数据;
其次索引节点为一级间接索引节点,大小为4KB,不是直接存放数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有4KB/4B=1024个地址,可存1024*4KB=4MB数据;
然后是二级索引节点,存放一级节点地址,一级节点再存放物理盘块地址,再链接到物理盘块,容量扩大一个量级,102410244KB数据;
1然后是为三级间接索引,又多一层嵌套,102410241024*4KB数据。
以此类推
树形文件目录
相对路径:从当前目录开始的文件路径
绝对路径:从根目录开始的路径
全文件名:绝对路径 + 文件名
树形结构主要用于区分相对路径和绝对路径
空闲存储空间管理
空闲区表法:将所有空闲空间整合成一张表,即空闲文件目录
空闲链表法:将所有空闲空间链接成一个链表,根据需要分配
成组链接法:既分组,每组内又链接成链表,两者结合
位示图法:对每个物理空间用一位标记,为1则使用,为0则空闲,形成一张位示图。
设备管理
- 设备分类方式:
按数据组织分类:块设备、字符设备。
资源分配角度分类:独占设备、共享设备和虚拟设备。
数据传输速率分类:低速设备、中速设备、高速设备
输入输出技术
- 程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低。CPU串行
CPU串行(Serial CPU)是一种单个指令流执行的计算机处理器,指令序列按顺序一个接一个地执行。这意味着每个指令必须在前一个指令完成后才能开始执行。这与并行处理器(Parallel CPU)不同,后者可以同时执行多个指令。串行CPU通常更容易设计和实现,但速度较慢。
- 程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高。适用于键盘等实时性较高的场景。CPU并行
CPU并行是指将一个任务分解成多个子任务,由多个处理器核心同时处理,从而提高处理效率和性能的一种方式。CPU并行可以在单个处理器内的多个处理核心之间分配任务,或者将任务分配给多个处理器来执行。CPU并行可以使用多线程、向量化指令、SIMD(单指令多数据)和多核心等技术来实现。在现代计算机系统中,CPU并行通常用于高性能计算、数据分析、图形处理和深度学习等领域。
- 中断响应时间指的是从发出中断请求开始进入中断处理程序
- 中断处理时间指的是从中断处理开始到中断处理结束
- 中断向量提供终端服务程序的入口地址。
- 多级中断嵌套,使用堆栈来保护断点和现场。
- DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都有DMA控制器来完成,在主存和外设之间建立直接的数据通路,效率很高。适用于硬盘等高速设备。CPU并行
占用CPU时间:程序查询>中断>DMA>通道>I/O处理机
在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时;区分指令执行结束和总线周期结束。
虚设备和SPOOLING技术
SPOOLING技术
,就是在外设上建立两个数据缓冲区(输入井、输出井),这样无论多少进程都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机就会自动按顺序打印,实现了物理外设的共享,使每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。
磁盘结构
磁盘有两个盘面,每个盘面又多个同心圆,一个圆就是一个磁道,磁道上划分多个扇区,数据就存在扇区中。
读取数据时,先找到对应磁道,等磁盘旋转到指定扇区,才能读取到,因此就有寻道时间(磁头移动到磁道所需时间)和等待时间(等待读写的扇区转到磁头下的时间),寻道时间最长
寻道时间调度算法:
先来先服务FCFS:根据进程请求顺序
最短寻道时间优先SSTF:请求访问的磁道与当前磁道最近的进程优先调度。问题:“饥饿现象”,远处的进程可能一直无法访问
扫描算法SCAN【电梯算法】:磁头在磁盘上双向移动,选择离磁头当前所在位置最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是里→外或者外→里一直移动完才掉头
单项扫描调度算法CSCAN:与SCAN不同的时,只做单项移动,只能里→外或者外→里单向。
#微内核操作系统
只将最为核心必要的东西放入内核,其他能够独立的东西都放进用户进程中,用户态、核心态
嵌入式操作系统
嵌入式操作系统特点:微型化、代码质量高、专业化、实时性强、可裁剪可配置。
实时嵌入式操作系统的内核服务:异常和中断、计时器、l/O管理。
常见的嵌入式RTOS(实时操作系统):VxWorks、RT-Linux、QNX、pSOS。
嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为:
片级初始化->板级初始化->系统初始化。
芯片级是微处理器的初始化,板卡级是其他硬件设备初始化,系统级初始化就是软件及操作系统初始化。
相关文章:

软考中级—— 操作系统知识
进程管理 操作系统概述 操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。 操作系统的特征:并发性、共享性、虚拟性、不确定性。 操作系统的功能:进程管理、存储管理、文件管理、设备…...
我们是否真的需要k8s?
文章目录 背景k8s相关的讨论为什么要用k8sk8s带来了什么当前业务使用到k8s的核心优势了吗直接自己买服务器会不会更便宜?其他QA没有人可以说出来为什么一定要用k8s而不是其他的没有人可以解释为什么成本核算困难以及成本这么高的原因没有人给出面向C端,面…...

基于蜉蝣优化的BP神经网络(分类应用) - 附代码
基于蜉蝣优化的BP神经网络(分类应用) - 附代码 文章目录 基于蜉蝣优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蜉蝣优化BP神经网络3.1 BP神经网络参数设置3.2 蜉蝣算法应用 4.测试结果:5.M…...

前端系列-1 HTML+JS+CSS基础
背景: 前端系列会收集碎片化的前端知识点,作为自己工作和学习时的字典,欢迎读者收藏和使用。 笔者是后端开发😶前端涉猎不深,因此文章重在广度和实用,对原理和性能不会过多深究。 1.html 1.1 html5网页结…...

Learning Invariant Representation for Unsupervised Image Restoration
Learning Invariant Representation for Unsupervised Image Restoration (Paper reading) Wenchao Du, Sichuan University, CVPR20, Cited:63, Code, Paper 1. 前言 近年来,跨域传输被应用于无监督图像恢复任务中。但是,直接应用已有的框架…...

1.4.C++项目:仿muduo库实现并发服务器之buffer模块的设计
项目完整版在: 一、buffer模块: 缓冲区模块 Buffer模块是一个缓冲区模块,用于实现通信中用户态的接收缓冲区和发送缓冲区功能。 二、提供的功能 存储数据,取出数据 三、实现思想 1.实现换出去得有一块内存空间,采…...

AndroidStudio精品插件集
官网 项目地址:Github博客地址:Studio 精品插件推荐 使用需知 所有插件在 Android Studio 2022.3.1.18(长颈鹿)上测试均没有问题,推荐使用此版本Android Studio 2022.3.1.18(长颈鹿)正式版下…...

java图书管理系统
一、 引言 图书管理系统是一个用于图书馆或书店管理图书信息、借阅记录和读者信息的应用程序。本系统使用Java Swing框架进行开发,提供直观的用户界面,方便图书馆管理员或书店工作人员对图书信息进行管理。以下是系统的设计、功能和实现的详细报告。 二…...

大屏自适应容器组件-Vue3+TS
1.引言 在做数字大屏时,图表能跟着浏览器的尺寸自动变化,本文采用Vue3前端框架,采用TypeScript语言,封装了一个大屏自适应组件,将需要显示的图表放入组件的插槽中,就能实现自适应屏幕大小的效果。 2.实际…...

java图书信息管理
一、项目概述 本图书信息管理系统旨在提供一个直观的用户界面,用于管理图书馆或书店的图书信息。系统包括图书添加、查询、借阅和归还等功能。 二、系统架构 系统采用JavaSwing作为前端UI框架,后端使用Java Servlet处理业务逻辑,数据存储在…...
apache服务器出现No input file specified.解决方案
APACHE服务器出现No input file specified.解决方案 thinkcmf程序默认的.htaccess里面的规则: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA…...

你写过的最蠢的代码是?——全栈开发篇
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

正点原子嵌入式linux驱动开发——TF-A初探
上一篇笔记中,正点原子的文档简单讲解了一下什么是TF-A,并且也学习了如何编译TF-A。但是TF-A是如何运行的,它的一个运行流程并未涉及。TF-A的详细运行过程是很复杂的,涉及到很多ARM处理器底层知识,所以这一篇笔记的内容…...
【网安别学成开发】之——python篇
经典入门编程题 1.猜数字 经典的猜数字游戏,几乎所有人学编程时都会做。 功能描述: 随机选择一个三位以内的数字作为答案。用户输入一个数字,程序会提示大了或是小了,直到用户猜中。 #!/usr/bin/env python3import randomresu…...
vue图片显示
一、Vue图片显示方法: 1.直接使用<img>标签: 最简单的方法是使用<img>标签,并将图片的URL作为src属性的值。例如: <img src"path/to/your/image.jpg" alt"Image"> 如果是绝对路径&#x…...

S32K144 GPIO编程
前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发,下面就使用该工程模板进行GPIO LED的编程试验。 1. 开发环境 S32K144EVB-Q100开发板MDK-Keil Jlink 2. 硬件连接 S32K144EVB-Q100开发板关于LED的原理图如下: 也就是具体连接关系如下…...

域名备案流程(个人备案,腾讯云 / 阿里云)
文章目录 1.网站备案的目的2.备案准备的材料2.1 网站域名2.2 云资源或备案授权码2.3 电子材料 3.首次个人备案准备的材料3.1 主体相关3.2 域名相关3.3 网站相关3.4 网站服务相关3.5 变更相关 4.个人备案流程4.1 登录系统4.2 填写备案信息🍀 填写备案省份ἴ…...
子网ip和子网掩码的关系
子网ip和子网掩码的关系 一个IP地址被分为两部分:网络地址和主机地址。这是通过子网掩码来实现的。 子网掩码(Subnet Mask)是一个32位的二进制数,它用来区分一个IP地址中的网络地址和主机地址。在子网掩码中,网络地址…...

openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT
文章目录 openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT88.1 前置条件检查88.2 转换88.3 转换示例 openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT …...

网络-Ajax
文章目录 前言一、Ajax优点:缺点: 二、使用步骤XNLHttpRequest对象完整代码 总结 前言 本文主要记录Ajax技术的简介,以及用法。 一、Ajax Ajax是一组用于在Web浏览器和Web服务器之间进行异步通信的Web开发技术。 它代表着Asynchronous Java…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...