考研操作系统----操作系统的概念定义功能和目标(仅仅作为王道哔站课程讲义作用)

news/2025/2/14 5:03:27/

目录

操作系统的概念定义功能和目标

操作系统的四个特征

 操作系统的分类

​编辑

 操作系统的运行机制

 系统调用

操作系统体系结构 

操作系统引导

虚拟机 


操作系统的概念定义功能和目标

什么是操作系统

操作系统是指控制和管理整个计算机系统的软硬件资源,是计算机的管理者,是配置在计算机硬件上的第一层软件。合理组织和协调计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境。

一句话:①操作系统是计算机系统资源包括软硬件资源的管理者。

操作系统向上(用户层和软件层)提供方便易用的服务

操作系统是最接近硬件的软件

操作系统的功能和目标

①作为系统资源的管理者(包括软硬件资源),向下管理好软硬件资源,这是操作系统的手段(功能)

②向上为用户提供方便易用的服务,为用户提供一个良好的(稳定高效,安全)的运行环境,这是操作系统的目的

封装思想:

操作系统向上提供的的方便易用的服务:

GUI:

②命令接口:联机命令接口和脱机命令接口:使用命令行的方式和操作系统进行交互

联机命令接口又叫做1交互式命令接口:特点用户说一句,系统跟着做一句

使用time命令获取最新时间过后操作系统等待用户输入,设置系统的最新时间:

这就是典型的交互式命令。

脱机命令接口:脱机命令接口也被叫做批处理命令接口,用户说一堆,系统跟着做一堆。

以上的联机和脱机命令接口都是普通用户可以使用1的,还有一类接口叫做:

程序接口:可以在程序中进行系统调用来使用程序接口,普通用户不能直接使用程序接口,只能通过程序代码间接使用。比如在C语言的库中就会封装一些比如open接口来进行调用。

在有些教材中会将命令接口和程序接口统称为用户接口。狭义的用户接口下是不包含GUI的

作为最接近硬件的层次:

需要实现对硬件机器的拓展。

没有任何软件支持的计算机称为裸机,在裸机上安装操作系统,可以提供资源管理功能和方便用户的服务功能。将裸机改造成功能更强,使用更方便的机器。

  通常将覆盖了软件的机器称为扩充机器,又称为虚拟机。

操作系统对硬件的拓展:操作系统将cpu、内存、磁盘、显示器、键盘等硬件合理的组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。

操作系统的四个特征

并发:

指两个或者多个事件在同一时间内间隔发生,这些事件宏观上是同时发生的,但是微观上是交替发生的。

常考一个混淆概念:

并行:指两个或者多个事件在同一个时刻同时发生

操作系统的并发性是指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行的,但是微观上看是交替运行的。操作系统就是伴随着“多道程序技术”而出现的,因此,操作系统是和并发一起诞生的。

考点:

①单核cpu同一时刻只能执行一个程序,各个程序只能并发执行。

②多核cpu同一时刻可以同时执行多个程序,多个程序可以并行的执行

比如:inter的第八代I3处理器就是4核cpu,意味着可以并行的执行四个程序。

但是只要有4个以上的程序需要同时运行的话,那么并发性是必不可少的。

并发性是操作系统的一个最基本的特征。

操作系统特征之二----共享

共享即是资源共享,是指系统中的资源可供内存中多个并发执行的经常共同使用。

有两种资源共享模式:互斥共享模式和同时共享模式

1互斥共享模式:系统中的某些资源,虽然可以提供给多个进程使用,但是一段时间内只能有一个进程访问该资源。

同时共享方式:字体中的某些资源,允许一个时间段内可以同时由多个进程“同时”对他们进行访问。

互斥:使用qq和微信视频的时候,同一个时间段摄像头这个资源只能让一个进程调度。

但是也有可能宏观上是共享的,微观上也是共享的,比如一一边打游戏一边听歌的时候,扬声器这个资源就是同时被游戏和音乐播放器两个进程同时共享。

并发和共享的关系:互为存在条件

操作系统特征之三----虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物则是用户感受到的。

时间片的轮转:

操作系统特征四----异步性

异步是指:在多道程序环境下,允许多个程序并发执行,但是由于资源是有限的。所以每一个进程的执行不是跳上cpu就执行到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

总结:

 操作系统的分类

手工操作阶段

 只带打孔 有空表示1,无孔表示0

缺点:用户独占全机,当一个程序员在使用的时候另外一个程序员没有办法进行操作

人机速度矛盾导致导致资源利用率极低,因为人处理的时候速度比较慢,但是电脑处理的速度比较快,电脑需要等待人的输入。

大多数cpu都是处于闲置的状态,但是对于当时来说,计算机这种物品的价格是非常昂贵的。所以,引入了单批道处理系统和多批道处理系统。

批处理阶段:

单批道处理系统:

引入脱机输入/输出技术(用外危机+磁带完成),并且由监督程序负责控制作业的输入输出。 

三个作业:

这就是操作系统的雏形

优点:缓解了一定程度的人机速度矛盾,资源利用率有所上升,cpu有更高比例的时间处于计算状态。

缺点:资源利用率依旧不够高,内存中仅仅只有一道程序在运行,只有该程序运行结束之后才可以调入下一道程序。cpu还是有大量空闲的相对时间等待输入输出也就是I/O完成,资源利用率依旧偏低。

多批道处理系统:操作系统正式诞生,用于支持1多道程序并发执行

当第一道程序在计算的时候,输入设备是空闲的,此时就输入第二道程序的数据,当第一道程序运行完成,接下来就是输出设备在输出,cpu就可以直接从输入设备读入数据进行计算。

优点:

多道程序并发执行,共享计算机资源,资源利用率大幅度提升,cpu和其他资源更加可以保持忙碌状态,系统的吞吐量增大。

缺点:人机无法交互,操作者只用将数据进行上传,用户交付了数据过后只能等待计算机处理完成,中间自己不能够控制自己的作业执行。比如无法调试程序、无法在程序运行中输入一些参数。

所以为了避免这样的缺点,为了能够实现人机交互,所以有了分时操作系统

分时操作系统:计算机以时间片为单位轮流为各个用户、作业服务,各个用户可以通过终端(键盘)和计算机进行交互。

优点:

用户的请求可以及时被相应,解决了人机交互的问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。就像个人独占了计算机一样

主要缺点:不能优先处理一些紧急任务,操作系统对各个用户、作业都是完全公平的,循环的为每个用户作业服务一个时间片,不区分任务的紧急性。

为了能够实时的处理一些紧急的任务,所以诞生了实时的操作系统。比如现在的汽车,当要发生车祸时,车内此时要执行播放音乐的任务,但是要优先执行制动,而不是要撞上了还要忙着放音乐。

实时操作系统

优点:

能够优先响应一些紧急任务,某些紧急任务不需要时间片排队

在实时操作系统的控制下,计算机系统接收到外部信号进行及时的处理,并且要在严格的时限内处理完事件并且保证处理的结果是正确的,实时操作系统的主要特色就是及时性和可靠性。

实时操作系统又分为硬实时和软实时:

对于订票系统来说需要实时显示剩余票数,但是稍微延误一会问题不大。

总结:

 操作系统的运行机制

回答:操作系统在计算机上是如何运行的

首先程序是如何运行的:

首先程序员将代码写好过后会经过编译器的编译将代码翻译成计算机可以读懂的二进制的指令。

简单理解:指令就是能够让处理器(cpu)能识别的,执行的最基本的命令。

注意:

在这种黑框中使用的命令并不是这里说的机器指令而是交互式命令接口,可以理解为一种调用函数,底层封装了调用机器指令的接口。这里所说的指令是二进制机器指令。

  我们普通程序员写的使用高级语言写的程序实际上就是普通程序,这些程序是运行在操作系统之上也就是由操作系统进行调度的。但是在微软和苹果这些公司或者linux开源社区中,就有人写的是内核程序,很多的内核程序组成了操作系统内核,我们简称内核(Kernel)

内核是操作系统最重要的核心部分,也是最接近硬件的部分。操作系统的管理工作就是在内核进行管理的。进一步来说,一个操作系统只要拥有内核就可以实现管理者的功能,比如在Docker中仅仅需要linux的内核就可以实现linux操作系统的功能,但是并不是所有操作系统的功能都在内核之中,比如微软的windows操作系统为了实现更直观的人机交互系统就会有图形化用户界面GUI但是即使没有这个图形化界面我们任然可以使用命令交互接口和操作系统内核进行交互,所以这并不是必须的。

特权指令与非特权指令:

 操作系统内核作为系统资源的管理者,为了用户数据的安全,不能直接让用户访问内核数据,比如清除所有内存这样的指令是不会让用户通过任何方式来执行的,这样的指令只能有系统资源的管理者也就是操作系统内核来执行,这样的指令称为“特权指令”

 而我们的用户通过应用程序或者命令行接口交互这样的方式使用的指令称为“非特权指令”

那么cpu是如何区分特权指令和非特权指令的,也就是cpu如何区分此时正在运行的是内核程序还是普通的应用程序呢?

  cpu有两种状态:用户态和内核态

 处于内核态是,说明此时正在运行的是内核程序,可以执行内核指令

处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权命令

关于这两种状态的切换:

cpu中会有一个结存器称为程序状态字结存器(psw),其中有个二进制位,1表示内核态,0表示用户态。

注意:

内核态有时也称为核心态、管态,用户态有时也称为目态

中断和异常

 中断的作用

cpu上会运行两种程序,一种是操作系统内核程序,一种是应用程序。内核程序是整个系统的管理者。在合适的情况下,操作系统内核会将cpu的使用权让给应用程序,这也就是进行的运行。

“中断”会使得cpu由用户态变为内核态,操作系统重新夺回对cpu的控制权。

“中断是让操作系统内核夺回cpu使用权的唯一途径”

如果没有中断,一但程序在cpu上运行,cpu就会一直运行这个程序。

没有中断就没有并发。

中断的类型:

内中断:

1

外中断:

中断机制的基本原理:

总结:

 系统调用

什么是系统调用:

系统调用与库函数的区别:

为什么系统调用时必须的:

系统调用按功能分类:

系统调用的过程:

 

 

操作系统体系结构 

 

内核是操作系统最基本,最核心的部分。实现操作系统内核功能的那些程序就是内核程序。

 

 

 

分层结构:

 每一层只能调用相邻的第一层的接口。

 模块化体系:

 外核:

操作系统引导

虚拟机 

传统的计算机:

商业中,两个应用运行在一个操作系统之上,可能会带来一些隐患。想到一个解决办法,将其中一个应用运行在另外的一个物理机器上,两个应用就运行在了两个独立的操作系统上。

但是这个就会导致物理机器资源的极大浪费。

第一类:将磁盘和内存空间专门给各个虚拟机都划分一份,同时将cpu按照时间片划分给各个虚拟机器使用,这样在虚拟机器看来自己就是独占资源。

第二类:


http://www.ppmy.cn/news/1571882.html

相关文章

树莓集团:从区域到全国,数字产业园服务如何有效赋能企业?

树莓集团从区域发展起步,逐步迈向全国,其数字产业园服务在赋能企业方面有着独特的路径。 在区域发展阶段,树莓集团深入了解当地企业的需求和特点,为企业量身定制服务方案。例如,针对当地传统制造业企业,提…

分布式 IO 模块:港口控制主柜的智能 “助手”

在繁忙的港口,每一个集装箱的装卸、每一艘货轮的停靠与离港,都离不开高效精准的控制系统。港口控制主柜作为整个港口作业的核心枢纽之一,其稳定运行至关重要。而明达技术自主研发推出的MR30分布式 IO 模块可作为从站,与 PLC&#…

若依 ruoyi-vue 隐藏字典样式

平时我们会使用若依字典样式&#xff0c;有时候需要隐藏。 <el-table-column label"统计指标" align"center" prop"type" width"200px"><template slot-scope"scope"><dict-tag :options"dict.type.sta…

k8s ingress-nginx-controller 0.46.0 升级到 1.6.4

官网文档提到&#xff0c;只需替换镜像版本即可升级 ingress-nginx-controller 官方文档升级 寻找对应的ingress-nginx-controller版本 因为是 k8s 版本升级到1.24后导致的不兼容&#xff0c;所以我们要找到对应的版本的ingress 寻找对应版本地址 我们找到了比较合适的1.6.4…

【设计模式】【行为型模式】策略模式(Strategy)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…

2025年3月一区SCI-真菌生长优化算法Fungal growth optimizer-附Matlab免费代码

引言 本期介绍了一种新的自然启发的元启发式算法-真菌生长优化算法Fungal growth optimizer&#xff0c;FGO&#xff0c;这是受到自然界真菌生长行为的启发。该算法于2025年3月最新发表在中科院1区SCI期刊 Computer Methods in Applied Mechanics and Engineering。 模拟了以菌…

动态规划LeetCode-416.分割等和子集

给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2&…

如何在 Java 应用中实现数据库的主从复制(读写分离)?请简要描述架构和关键代码实现?

在Java应用中实现数据库主从复制&#xff08;读写分离&#xff09; 一、架构描述 &#xff08;一&#xff09;整体架构 主库&#xff08;Master&#xff09; 负责处理所有的写操作&#xff08;INSERT、UPDATE、DELETE等&#xff09;。它是数据的源头&#xff0c;所有的数据变…