软考中级—— 操作系统知识
进程管理
操作系统概述
操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。
操作系统的特征:并发性、共享性、虚拟性、不确定性。
操作系统的功能:进程管理、存储管理、文件管理、设备管理、作业管理。
分类:批处理操作系统、分时操作系统(轮流使用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…...
Autowired和Resource的关系
相同点对于下面的代码来说,如果是Spring容器的话,两个注解的功能基本是等价的,他们都可以将bean注入到对应的field中 不同点但是请注意,这里说的是基本相同,说明还是有一些不同点的: byName和byType匹配顺…...
HashTable, HashMap, ConcurrentHashMap 之间的区别
HashMap: 线程不安全. key 允许为 null。 Hashtable: 线程安全. 使用 synchronized 锁 Hashtable 对象, 效率较低. key 不允许为 null.。只是简单的把关键方法上加上了 synchronized 关键字。如 get 和 set ,这相当于直接针对 Hashtable 对象本身加锁,如…...
Maven下载源码出现:Cannot download sources Sources not found for org.springframwork...
Maven下载源码出现:Cannot download sources Sources not found for org.springframwork… 最近重装了IDEA再次查看源码时发现总是报错,网上找了很多,发现解决方法都是在项目终端执行如下命令: mvn dependency:resolve -Dclassi…...
C进阶--字符函数和字符串函数介绍
✨ 更多细节参考 cplusplus.com/reference/cstring/ 使用方式: ⭕ 求字符串长度 🖌 strlen 函数原型: size_t strlen ( const char * str ); 作用: 获取字符串长度 ✨补充: ⭐字符串以 \0 作为结束标志&…...
算法通关村第五关-二叉树遍历(层数优先)之经典问题:简单的层序遍历、层序遍历分层、自底向上的层序遍历
基础知识(青铜挑战) 了解二叉树的基础知识 实战训练(白银挑战) 简单的层序遍历 基本的层序遍历思路很清晰: 给你一个二叉树根节点,你需要创建一个队列 queue 来遍历节点,一个链表 list 来存储…...
C++左右值及引用
1 左值和右值 简单记法:能取地址的是左值,不能取地址的是右值 右值一般是常量 例: i 是右值,因为先把 i 赋值给临时变量,临时变量在1,而临时变量是将亡值,&i取地址会报错 i是左值…...
如何备份和恢复数据库
目录 1.xtrabackup 是什么2.全量备份3.增量备份4.使用备份进行恢复5.原理6.参考 本文主要介绍如何使用xtrabackup 进行数据库的备份和恢复,并在最后介绍了原理。 1.xtrabackup 是什么 XtraBackup是由Percona开发的一款开源的MySQL数据库备份工具。它可以对InnoDB和…...
简化数据库操作:探索 Gorm 的约定优于配置原则
文章目录 使用 ID 作为主键数据库表名TableName临时指定表名列名时间戳自动填充CreatedAtUpdatedAt时间戳类型Gorm 采用约定优于配置的原则,提供了一些默认的命名规则和行为,简化开发者的操作。 使用 ID 作为主键 默认情况下,GORM 会使用 ID 作为表的主键: type User st…...
保姆级Anaconda安装教程
一.anaconda下载 建议使用清华大学开源软件镜像站进行下载,使用官网下载速度比较慢。 anaconda清华大学开源软件镜像站 : https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 一路next即可,注意添加环境变量得选项都勾上。 二.验证…...
你写过的最蠢的代码是?——后端篇
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂🦖…...
沧州住房和城乡建设部网站/百度推广优化师
下列表格中除了个别函数外,其余函数都是图像处理工具箱提供的关于图像处理的函数,现摘录到此以备查找。 表1 图像显示函数名功能说明函数名功能说明colorbar颜色条显示montage按矩形剪辑方式显示多帧图像getimage从坐标系中获取图像数据immovie从多帧索引…...
wordpress今日更新/广州网站外包
一下是我整理的asp.net的论坛列表: 1。 discuz --------http://nt.discuz.net 2. dvbbs------------http://bbs.dvbbs.net 3. dXbbs ----------http://www.dxbbs.net(它的源码要用Reflector反编译一下)...
陕西煤业化工建设集团网站/seo优化内页排名
一、WebSocket与HTTP长轮询WebSocket属于HTML5 规范的一部分,提供的一种在单个 TCP 连接上进行全双工通讯的协议。允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连…...
网站建设全包/青岛网络推广公司
16转换 10 进制: .toString("X"); 10转换 16 进制: .toString("X2");转载于:https://www.cnblogs.com/Iyce/archive/2012/11/15/2771627.html...
有一个做名片的网站/百度的营销推广模式
密码学C/C语言实现学习笔记——基本运算函数基础数据结构:typedef unsigned short clint;typedef unsigned long clintd;书中所使用环境unsigned short是16位(2个字节)的,unsigned long是32位(4个字节)的。…...
金华建设监理协会网站/百度推广怎么联系
\documentclass{ctexart}\usepackage{enumerate}\begin{document}\begin{enumerate}[{case}1]\item new\item new\item new\end{enumerate}\end{document}转载于:https://www.cnblogs.com/zhangzujin/p/5574730.html...