请注意,本文中的部分内容来自网络搜集和个人实践,如有任何错误,请随时向我们提出批评和指正。本文仅供学习和交流使用,不涉及任何商业目的。如果因本文内容引发版权或侵权问题,请通过私信告知我们,我们将立即予以删除。
CPU管理
内存管理
I/O(终端)管理
磁盘管理
文件管理
网络管理、电源管理、多核管理(不讲,课程高级操作系统讲解)
多进程视图:- CPU管理- 内存管理
文件操作视图:- I/O(终端)管理- 磁盘管理- 文件管理
并发
并发(进程)
并行
共享
互斥共享方式
同时访问方式
并发和共享的关系
虚拟
一个物理上的实体变为若干逻辑上的对应物
时分复用技术
空分复用技术
异步
并发和共享互为存在条件(最基本特征)
x86 PC为例
BIOS映射区:固化在主存ROM中,用于检查RAM、键盘、显示器、软硬磁盘等,并将磁盘第一个扇区读入主存
引导扇区代码(bootsect.s一段汇编代码):将操作系统读入内存,转入setup.s执行
setup模块(setup.s汇编代码执行)
读硬件参数存储到内存数据结构中,初始化gdt表
gdt表(全局描述表):保护模式下,以数组的形式存储全局的段的描述符
idt表(中断描述符表):记录了中断号和调用函数之间的关系
system模块移动到物理内存起始位置处(0x0000),启动保护模式,转跳到0x0000处
system模块
head.s:初始化一些gdt表、idt表、页表
main.c:一堆初始化函数
CPU执行ROM中引导程序(硬件自检,再开机)
磁盘第一块------主引导记录读入内存,执行磁盘引导程序,扫描分区表
以活动分区读入分区引导记录,并执行
以根目录下找到完整操作系统初始化程序(启动管理器)并执行、开机
内核态(管态/核心态):CPU可以执行特权指令,操作系统内核程序运行在核心态
用户态(目态):CPU只能执行非特权指令
内核态->用户态
用户态->内核态
异常(内中断)
中断(外中断)
中断处理过程
中断隐指令(硬件完成)
关中断
保存断点
中断服务程序寻址
中断服务程序(软件实现)
保存现场和屏蔽字
开中断
执行中断服务程序
关中断
恢复现场和屏蔽字
开中断
中断返回
操作系统接口(哈工大)
三种用户使用方式(上层提供服务)
都是通过c语言调用一些操作系统提供的重要函数实现,重要函数即操作系统接口,表现为函数调用,因为由系统提供,称为系统调用
命令行:本质是系统初始化完,最后执行的一段死循环等待用户输入的程序
图形按钮:基于消息机制
应用程序
POSIX:IEEE制定的一个标准族
系统调用的实现
系统调用概念
系统调用过程
传递系统调用参数
执行陷入指令(访管指令/trap指令)主动引发一个内中断
执行服务程序
返回用户态
IBSYS
OS/360
MULTICS
UNIX
LINUS
System
Mac OS
CP/M
QDOS
MS-DOS
手工操作阶段
单道批处理阶段
多道批处理系统
分时操作系统
实时操作系统
网络操作系统
分布式计算机系统
个人计算机操作系统
所有工作需要人工干预
自动性:作业自动执行
操作系统出现
交互性强
抢占式,优先级高者优先
服务于计算机网络,集中式控制方式
用户独占全机,资源利用率低
顺序性:作业依次执行
中断技术,无人机交互
- 及时,可靠,交互性不如分时
CPU等待手工操作,利用率低
单道性:仅有一道程序执行
宏观上并行,微观上串行
- 硬实时系统:飞机控制系统,导弹系统
软实时系统:订票系统
内核分多层,每层可单向调用更低一层提供的接口
便于调试和验证(逐层调试验证),易扩充维护
难以定义各层边界,效率低,不可夸层调用
将内核分为多个模块,模块间相互协作,内核=主模块+可加载内核模块
易维护,可多模块同时开发;支持动态加载新的内核模块;任何模块可以直接调用其他模块
模块间相互依赖,难以调试
变态:CPU转态的转换
- 所有功能都放在内核中
- 性能高,内核内部功能可以互相直接调用
- 内核功能复杂,难以维护,内核某个功能模块出错,可能导致系统崩溃
变态:CPU转态的转换
只把中断、原语、进程通信等核心功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态
内核小功能少、易于维护,可靠性高;功能模块崩溃不会导致整个系统崩溃
性能低,需要频繁切换用户态/核心态,用户态下各功能模块不可以直接互相调用,只能内核的“消息传递”间接通信
内核负责进程调度、进程通信等功能,外盒负责为用户进程安全分配硬件资源
外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源
减少虚拟硬件资源的“映射层”,提升效率
降低了系统一致性,系统复杂
安装Guset OS时,VMM要在原本的硬盘上自行分配存储空间
性能更好,可迁移性更差
第一类VMM运行在最高特权级,可以执行最高特权指令
拥有自己的虚拟磁盘,实际上上Host OS文件系统中的一个大文件,分配到的是虚拟内存
性能差,需要Host OS为中介
第二类VMM部分运行在用户态,部分运行在内核态。Guest OS发出系统调用会被VMM截获,转化为VMM对Host OS的系统调用
I. 较好的性能
II. 较高的可靠性
III. 较高的安全性
IV. 较强的可扩展性
A. 仅 II、IV
B. 仅 I、II、IV
C. 仅 I、III、IV
D. 仅 II、III、IV
参考答案:
正确答案是选项 D:仅 II、III、IV。
解析:
综上所述,微内核操作系统具有较高的可靠性、较高的安全性和较强的可扩展性,但在性能方面可能受到一定影响。
因此,正确答案是选项 D:仅 II、III、IV。
问题: 在操作系统内核中,中断向量表适合采用的数据结构是( )。
A. 数组
B. 队列
C. 单向链表
D. 双向链表
参考答案:
正确答案是选项 A:数组。
解析:
在操作系统内核中,中断向量表用于存储中断处理程序的入口地址。每个中断类型对应一个唯一的中断号,在中断发生时,CPU会查询中断向量表来找到对应中断号的中断处理程序的入口地址。
相比之下,队列、单向链表和双向链表等数据结构不适合用作中断向量表。队列和链表通常用于按顺序存储和访问元素,而中断向量表需要根据给定的中断号快速查找对应的中断处理程序的地址,因此需要使用具备随机访问特性的数据结构,即数组。
综上所述,数组是中断向量表适合采用的数据结构,因为它能实现快速、随机访问,提高中断处理的效率。
因此,正确答案是选项 A:数组。
问题: 下列关于多道程序系统的叙述中,不正确的是( )。
A. 支持进程的并发执行
B. 不必支持虚拟存储管理
C. 需要实现对共享资源的管理
D. 进程数越多CPU利用率越高
参考答案:
正确答案是选项 D:进程数越多CPU利用率越高。
解析:
多道程序系统是一种操作系统设计方法,通过将多个程序加载到内存中,使它们能够并发执行。以下是对每个选项的分析:
A. 支持进程的并发执行:多道程序系统的一个主要特点是支持进程的并发执行。操作系统会为每个进程分配处理器时间,并在多个进程之间进行切换,以实现并发执行。
B. 不必支持虚拟存储管理:虚拟存储管理是一种技术,通过将进程的部分数据存储在磁盘或其他辅助存储设备上,以便能够运行更多的进程并提供更大的内存空间。尽管不是所有的多道程序系统都必须支持虚拟存储管理,但它是一种常见的技术,可以提供更好的资源利用和更大的内存空间。
C. 需要实现对共享资源的管理:在多道程序系统中,多个进程可以共享系统资源,如内存、文件和设备等。因此,需要实现对共享资源的管理,以确保这些资源能够被多个进程正确使用、互斥访问和公平分配。
D. 进程数越多CPU利用率越高:这个叙述是不正确的。虽然多道程序系统可以支持并发执行多个进程,但随着进程数量的增加,进程之间会产生更多的资源竞争和调度开销。如果进程数量过多,系统可能会出现资源争用,甚至死锁现象,从而导致CPU利用率降低。
综上所述,不正确的选项是 D:进程数越多CPU利用率越高。
正确答案是选项 D:进程数越多CPU利用率越高。
问题: 下列选项中,需要在操作系统进行初始化过程中创建的是( )。
A. 中断向量表
B. 文件系统的根目录
C. 硬盘分区表
D. 文件系统的索引节点表
参考答案:
正确答案是选项 A:中断向量表。
解析:
在操作系统初始化的过程中,需要进行各种设置和数据结构的创建。以下是对每个选项的分析:
A. 中断向量表:中断向量表是一种数据结构,用于存储中断号与相应中断处理程序的映射关系。在操作系统初始化过程中,需要创建并初始化中断向量表,以便能够响应各种中断信号并执行相应的中断处理程序。
B. 文件系统的根目录:文件系统的根目录是文件系统中的顶层目录,包含了其他所有目录和文件的入口点。在操作系统初始化过程中,会对文件系统进行初始化,并创建文件系统的根目录。
C. 硬盘分区表:硬盘分区表是记录硬盘上各个分区起始位置、大小等信息的数据结构。在对硬盘进行逻辑格式化之前,需要先对硬盘进行分区并创建硬盘分区表。
D. 文件系统的索引节点表:索引节点表是一种数据结构,用于存储文件和目录的元数据信息。它包含了文件名、权限、拥有者等属性,以及指向文件实际数据存储位置的指针。在某些文件系统中,如UNIX文件系统,需要在文件系统创建过程中初始化索引节点表。
综上所述,操作系统初始化过程中需要创建的是选项 A:中断向量表。
正确答案是选项 A:中断向量表。
问题: 下列关于CPU模式的叙述中,正确的是( )。
A. CPU处于用户态时只能执行特权指令
B. CPU处于内核态时只能执行特权指令
C. CPU处于用户态时只能执行非特权指令
D. CPU处于内核态时只能执行非特权指令
参考答案:
正确答案是选项 C:CPU处于用户态时只能执行非特权指令。
解析:
在操作系统中,CPU可以处于两种不同的模式:用户态和内核态。以下是对每个选项的分析:
A. CPU处于用户态时只能执行特权指令:这是错误的描述。用户态下的CPU可以执行非特权指令,但不能执行特权指令。
B. CPU处于内核态时只能执行特权指令:这也是错误的描述。内核态下的CPU可以执行特权指令和非特权指令。
C. CPU处于用户态时只能执行非特权指令:这是正确的描述。当CPU处于用户态时,它只能执行非特权指令。这是出于安全性的考虑,以防止用户程序对系统造成损害。
D. CPU处于内核态时只能执行非特权指令:这是错误的描述。内核态下的CPU可以执行特权指令和非特权指令。
综上所述,正确答案是选项 C:CPU处于用户态时只能执行非特权指令。
正确答案是选项 C:CPU处于用户态时只能执行非特权指令。
问题: 执行系统调用的过程涉及下列操作,其中由操作系统完成的是( )。
Ⅰ. 保存断点和程序状态字
Ⅱ. 保存通用寄存器的内容
Ⅲ. 执行系统调用服务程序
Ⅳ. 将CPU模式改为内核态
A. 仅Ⅰ、Ⅲ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅱ、Ⅳ
D. 仅Ⅱ、Ⅲ、Ⅳ
发生系统调用时,CPU通过执行软中断指令将运行模式从用户态切换到内核态。在这个过程中,涉及以下操作:
Ⅰ. 保存断点和程序状态字:当发生系统调用时,硬件负责保存当前断点和程序状态字,以便在系统调用完成后能够正确返回到用户程序继续执行。
Ⅱ. 保存通用寄存器的内容:在进入内核态之前,操作系统需要保存当前用户态下的通用寄存器的内容,以免被覆盖或丢失。
Ⅲ. 执行系统调用服务程序:一旦进入内核态,操作系统会根据系统调用的类型和参数执行相应的系统调用服务程序,完成特定的功能。
Ⅳ. 将CPU模式改为内核态:通过执行软中断指令,CPU将运行模式从用户态切换到内核态,以便操作系统能够执行特权指令和访问受限资源。
根据上述分析,由操作系统完成的操作是Ⅱ、Ⅲ、Ⅳ。
因此,正确答案是选项 D:仅Ⅱ、Ⅲ、Ⅳ。
正确答案是选项 D:仅Ⅱ、Ⅲ、Ⅳ。
问题: 下列指令中,只能在内核态执行的是( )。
A. trap指令
B. I/O指令
C. 数据传送指令
D. 设置断点指令
参考答案:
正确答案是选项 B:I/O指令。
解析:
在内核态下,CPU可以执行任何指令,包括特权指令。而在用户态下,CPU只能执行非特权指令,而特权指令只能在内核态下执行。
常见的特权指令包括:
根据题目给出的选项:
综上所述,只有I/O指令属于特权指令,只能在内核态执行。
正确答案是选项 B:I/O指令。
文章浏览阅读3.3k次,点赞7次,收藏39次。CPU 执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对异常情况或特殊请求进行处理,处理完毕后再返回现行程序断点处,继续执行原程序。void 函数名(void) interrupt n using m {中断函数内容 //尽量精简 }编译器会把该函数转化为中断函数,表示中断源编号为n,中断源对应一个中断入口地址,而中断入口地址的内容为跳转指令,转入本函数。using m用于指定本函数内部使用的工作寄存器组,m取值为0~3。该修饰符可省略,由编译器自动分配。_51单片机中断篇
文章浏览阅读396次。项目经验(案例一)项目时间:2009-10 - 2009-12项目名称:中驰别克信息化管理整改完善项目描述:项目介绍一,建立中驰别克硬件档案(PC,服务器,网络设备,办公设备等)二,建立中驰别克软件档案(每台PC安装的软件,财务,HR,OA,专用系统等)三,能过建立的档案对中驰别克信息化办公环境优化(合理使用ADSL宽带资源,对域进行调整,对文件服务器进行优化,对共享打印机进行调整)四,优化完成后..._网络工程师项目经历
文章浏览阅读1k次,点赞31次,收藏30次。LVS:Linux Virtual Server,负载调度器,内核集成, 阿里的四层SLB(Server Load Balance)是基于LVS+keepalived实现。NATTUNDR优点端口转换WAN性能最好缺点性能瓶颈服务器支持隧道模式不支持跨网段真实服务器要求anyTunneling支持网络private(私网)LAN/WAN(私网/公网)LAN(私网)真实服务器数量High (100)High (100)真实服务器网关lvs内网地址。
文章浏览阅读899次。https://www.toutiao.com/a6713171323893318151/作者 | 黄小邪/言有三编辑 | 黄小邪/言有三图像预处理算法的好坏直接关系到后续图像处理的效果,如图像分割、目标识别、边缘提取等,为了获取高质量的数字图像,很多时候都需要对图像进行降噪处理,尽可能的保持原始信息完整性(即主要特征)的同时,又能够去除信号中无用的信息。并且,降噪还引出了一..._噪声很大的图片可以降噪吗
文章浏览阅读152次。目录谨慎地覆盖cloneCloneable接口并没有包含任何方法,那么它到底有什么作用呢?Object类中的clone()方法如何重写好一个clone()方法1.对于数组类型我可以采用clone()方法的递归2.如果对象是非数组,建议提供拷贝构造器(copy constructor)或者拷贝工厂(copy factory)3.如果为线程安全的类重写clone()方法4.如果为需要被继承的类重写clone()方法总结谨慎地覆盖cloneCloneable接口地目的是作为对象的一个mixin接口(详见第20_为继承设计类有两种选择,但无论选择其中的
文章浏览阅读958次,点赞21次,收藏24次。今天学长向大家分享一个毕业设计项目基于协同过滤的电影推荐系统项目运行效果:项目获取:https://gitee.com/assistant-a/project-sharing21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,人们可以随时随地浏览到海量信息,但是这些大量信息千差万别,需要费事费力的筛选、甄别自己喜欢或者感兴趣的数据。对网络电影服务来说,需要用到优秀的协同过滤推荐功能去辅助整个系统。系统基于Python技术,使用UML建模,采用Django框架组合进行设
文章浏览阅读614次。10G SFP+光模块被广泛应用于10G以太网中,在下一代移动网络、固定接入网、城域网、以及数据中心等领域非常常见。下面易天光通信(ETU-LINK)就为大家一一盘点下10G SFP+光模块都有哪些吧。一、10G SFP+双纤光模块10G SFP+双纤光模块是一种常规的光模块,有两个LC光纤接口,传输距离最远可达100公里,常用的10G SFP+双纤光模块有10G SFP+ SR、10G SFP+ LR,其中10G SFP+ SR的传输距离为300米,10G SFP+ LR的传输距离为10公里。_10g sfp+
文章浏览阅读239次。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流项目运行环境配置:项目技术:Express框架 + Node.js+ Vue 等等组成,B/S模式 +Vscode管理+前后端分离等等。环境需要1.运行环境:最好是Nodejs最新版,我们在这个版本上开发的。其他版本理论上也可以。2.开发环境:Vscode或HbuilderX都可以。推荐HbuilderX;3.mysql环境:建议是用5.7版本均可4.硬件环境:windows 7/8/10 1G内存以上;_基于vue美食网站源码
文章浏览阅读62次。oldwain随便写@hexun链接:http://oldwain.blog.hexun.com/ ...
文章浏览阅读843次,点赞16次,收藏22次。用这个工具扫描其它网站时,要注意法律问题,同时也比较慢,所以我们以之前写的登录页面为例子扫描。_sqlmap拖库
文章浏览阅读1.5w次,点赞5次,收藏38次。Origin也能玩转图片的拼接组合排版谭编(华南师范大学学报编辑部,广州 510631)通常,我们利用Origin软件能非常快捷地绘制出一张单独的绘图。但是,我们在论文的撰写过程中,经常需要将多种科学实验图片(电镜图、示意图、曲线图等)组合在一张图片中。大多数人都是采用PPT、Adobe Illustrator、CorelDraw等软件对多种不同类型的图进行拼接的。那么,利用Origin软件能否实..._origin怎么把三个图做到一张图上
文章浏览阅读4.2k次,点赞4次,收藏51次。51单片机智能电风扇控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0042。_电风扇模拟控制系统设计