王道计算机考研 操作系统学习笔记篇章一:操作系统概念

news2024/10/12 22:26:15

目录

操作系统的概念

操作系统的功能和目标

操作系统的特征 

并发

共享

虚拟

异步

操作系统的发展和分类

三大阶段

手工操作阶段

批次处理阶段—单道批处理系统

批处理阶段—多道批处理系统

操作系统分类

分时操作系统

实时操作系统

其他操作系统

操作系统的运行机制

预备知识

内核程序 v.s.应用程序

特权指令 v.s.非特权指令

内核态 v.s. 用户态 

内核态和用户态的切换 

 总结 

中断和异常 

中断的作用 

中断的分类 

中断的基本原理 

总结 

系统调用 

什么是系统调用,有何作用?

系统调用与库函数的区别 

什么功能要用到系统调用? 

系统调用背后的过程

​编辑 总结​编辑

操作系统体系结构 

操作系统内核部分

操作系统的体系结构 

总结

虚拟机

操作系统的概念

        操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件

操作系统的功能和目标


操作系统的特征 

  • 并发
  • 共享
  • 虚拟
  • 异步

并发

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

    易混淆—并行:指两个或者多个事件在同一个时刻同时发生。

  • 操作系统的并发性指计算机系统中同时存在着多个运行着的程序。

    一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)

    事实上,操作系统就是伴随着”多道程序技术“而出现的。因此,操作系统和程序并发是一起诞生的

  • 当今的计算机,一般都是多核cpu,如4核cpu这就意味着同一个时刻可以有4个程序并行执行,但是操作系统的并发性依然必不可少

共享

  • 共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
  • 两种资源共享方式
    • 互斥共享:一个时间端只允许一个进程访问该资源
    • 同时共享:允许一个时间段内由多个进程“同时”对它们进行访问(所谓的“同时”往往是宏观上的,但是微观上有可能是交替对该资源进行访问,即分时共享)
  • 并发与共享的关系:互为存在条件

虚拟

  • 虚拟是指把一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
  • 虚拟技术
    • 空分复用技术(如虚拟存储器技术)
    • 时分复用技术(如虚拟处理器—cpu)

异步

  • 异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
  • 只有系统拥有并发性,才有可能导致异步性

没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特性


操作系统的发展和分类

三大阶段

手工操作阶段
  • 人—字带机—计算机—-字带机人

  • 主要缺点:用户独占全机,人机速度矛盾导致资源利用率低

批次处理阶段—单道批处理系统
  • 引入脱机输入/输出技术(利用磁带技术),并监督程序负责控制作业的输入,输出

  • 人—自带机—-外围机—磁带—计算机—磁带—……

  • 主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
  • 主要缺点:内存中仅能由一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低
批处理阶段—多道批处理系统
  • 在磁带部分,每次往内存中输入多道程序
  • 操作系统正式诞生,并引入中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行。
  • 主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅度提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。
  • 主要缺点:用户响应时间长,没有人机交互功能(用户提升自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)

操作系统分类

分时操作系统
  • 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
  • 主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
  • 主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不能区分任务的紧急性。
实时操作系统
  • 主要优点:能够优先响应一些紧急任务,某些紧急任务不需要时间片排队。
  • 在实时操作系统的控制下,计算机系统接收道外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
  • 分类:
    • 硬实时操作系统:必须在绝对严格的规定时间内完成处理
    • 软实时操作系统:能接受偶尔违反时间规定
其他操作系统
  • 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件的共享)和各个计算机之间的通信。(如:Windows NT
  • 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由他们并行,协同完成这个任务。
  • 个人计算机操作系统:如Windows xp,MacOs

操作系统的运行机制

预备知识

指令和代码的区别:代码——>翻译——>指令

指令就是处理器(CPU)能够识别,执行的最基本命令

内核程序 v.s.应用程序

特权指令 v.s.非特权指令

应用程序只能使用“非特权指令”,如:加法指令、减法指令等

操作系统内核作为“管理者”,有时会让CPU执行一些“特权指令”,如:内存清零指令。这些指令影响重大,只允许“管理者”一一即操作系统内核来使用 

在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前需要判断出其类型 

内核态 v.s. 用户态 

内核态和用户态的切换 

 总结 


中断和异常 

中断的作用 


中断的分类 

内中断

外中断 

时钟中断

        在多任务操作系统中,程序的并发运行通过中断实现。操作系统将CPU的控制权交给多个任务,并通过定时中断来实现任务之间的切换。具体来说,当一个任务执行时间片用尽或发生阻塞等情况时,操作系统会引发一个时钟中断,将控制权转移到另一个任务上。这样,多个任务就可以交替执行,从而实现了程序的并发运行。

I/O 中断

        当应用程序需要进行输入/输出操作时,会向操作系统发起对设备的请求。操作系统会为该请求分配对应的I/O资源,并将任务的控制权交给其他任务。

        当设备就绪或完成数据传输时,设备控制器会向系统发送一个中断请求,这被称为IO中断。中断控制器收到IO中断请求后,将其传递给CPU。

        一旦CPU接收到IO中断信号,当前任务的执行会被中断,CPU会保存当前任务的上下文,即程序执行状态的相关信息,然后转而执行中断服务程序。中断服务程序是预先定义好的,用于处理特定IO设备的中断请求。

        通道在I/O程序执行结束或开始的时候,需要CPU做一定处理。只有在执行I/O程序期间,无需CPU干预。

中断的基本原理 

总结 


系统调用 

什么是系统调用,有何作用?

系统调用与库函数的区别 

什么功能要用到系统调用? 

系统调用背后的过程

  • 传递系统调用参数—->执行陷入指令(用户态)—->执行系统调用相关服务程序(核心态)—->返回用户程序
  • 注意:
    1. 陷入指令是在用户态执行的,执行陷入指令后立刻引发内中断,从而cpu进入核心态
    2. 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
    3. 陷入指令是唯一一个只能在用户态执行,而不能在核心态执行的指令

 总结


操作系统体系结构 

操作系统内核部分

操作系统的体系结构 

总结


虚拟机

虚拟机的CPU资源是通过时间片算法实现的,看似是独立的一个CPU,但在微观上是不独立的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1108667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CV计算机视觉每日开源代码Paper with code速览-2023.10.18

精华置顶 墙裂推荐!小白如何1个月系统学习CV核心知识:链接 点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【语义分割】IDRNet: Intervention-Driven Relation Netw…

图像检索算法 计算机竞赛

文章目录 1 前言2 图像检索介绍(1) 无监督图像检索(2) 有监督图像检索 3 图像检索步骤4 应用实例5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 图像检索算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xff…

PlatformIO在clion和vscode上的开发和使用,机器人开发嵌入式代码

vscode PlatformIO:2020年你还在用Arduino??快开始用PlatformIO开发Esp8266/32、Arduino、STM32,十分钟亲测ESP8266 clion PlatformIO: clion platformio搭建 其他说明: 在vscode里使用platformio,可以选择开发的平台…

MySQL学习(七)——存储过程

文章目录 1. 基本语法2. 变量2.1 系统变量2.2 用户定义变量2.3 局部变量 3. 逻辑关系3.1 if3.2 参数3.3 case3.4 while3.4 repeat3.5 loop 4. 存储结构4.1 游标4.2 条件处理程序4.3 存储函数 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储…

idea dubge 详细

目录 一、概述 二、debug操作分析 1、打断点 2、运行debug模式 3、重新执行debug 4、让程序执行到下一次断点后暂停 5、让断点处的代码再加一行代码 6、停止debug程序 7、显示所有断点 8、添加断点运行的条件 9、屏蔽所有断点 10、把光标移到当前程序运行位置 11、单步跳过 12、…

leetCode 214.最短回文串 + KMP

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示例 1: 输入:s "aacecaaa" 输出:"aaacecaaa"示例 2: 输入:s &…

【Java学习之道】JDBC API介绍与使用方法

引言 对于初学者来说,数据库编程可能听起来有些复杂,但实际上,只要你掌握了JDBC(Java Database Connectivity)API,就可以轻松地连接和操作数据库。本章将为你详细介绍JDBC API的概念、使用方法以及一些实际…

2023年信息院学生科协第二次硬件培训

2023年信息院学生科协第二次硬件培训 前言一、51单片机简介1、什么是单片机2、主流单片机及其编程语言3、单片机的应用4、单片机开发软件 二、GPIO(点亮LED)1、GPIO简介2、LED简介3、硬件设计4、软件设计 三、GPIO(独立按键)1、按…

ifndef是什么,如何使用?

引言 使用HbuilderX uni-ui模板创建的uni-app项目,main.js文件中看到有如下的注释: // #ifndef VUE3 ...... // #endif // #ifdef VUE3 ...... // #endif 相信很多没有uini-app项目开发经验的朋友,初次接触uni-app项目,可…

分类预测 | MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现基于LSTM-Ada…

Android 虚拟 A/B 详解(十) 判断 Virtual A/B 是否打开的 5 种办法.md

文章目录 0. 导读1. Virtual A/B 的开关1.1 编译开关1.2 编译开关的定义位置1.3 编译开关的作用 2. Virtual A/B 开关检查方法 1. 从源码判断示例 1. Broadcom 平台示例 2. Google 平台 方法 2、从编译输出判断方法 3、从 image 镜像文件判断示例 1. 从 super.img 判断示例 2. …

强化学习(reinforcement)

B站链接 https://www.bilibili.com/video/BV13a4y1J7bw?p1&vd_source6f43d02eb274352809b90e8cdf744905 agent----------environment--------goal State 状态 Action 行动 Reward奖励 是一个及时的反馈 目标是一个长远的结果 Core element👇 Policy 策略…

jQuery实现简易购物车

购物车中的商品列表如下: 需求如下: (1)实现如图所示商品列表 (2)单击’移出’按钮可用删除商品 (3)单击’全选’按钮选中所有商品 (4)根据用户的选择&am…

c++学习笔记汇总

[TOC] (C学习笔记汇总) 基础认识、基础语法 类、类与类之间的关系、可调用对象、std::function类模板、c11新标准、资源管理方案RAII、指针、智能指针、引用计数、C的多态 ios、istream、iostream、fstream、sstream 模板编程: 模板编程:主要分为“泛…

uniapp 安装 u-view 组件库

u-view 组件库安装教程:https://uviewui.com/components/install.html 注:以下使用 HBuilderx 安装 u-view 2.0 版本,不适用于其它版本。 1.安装 u-view 组件库 2、注册并登录 HBuilderx 账号,点击下载 u-view 组件库。 3、点击…

[Model.py 02] 地图按比例放大的实现

要求:实现地图按比例放大 分析:考虑到地图放大过程中需要保留河流道路这些物体的相对位置关系,这里选择将河流和道路这些物体的坐标矩阵合并成terrain_matrix并对这个合并后的矩阵进行缩放处理。放大后的矩阵,根据矩阵中标记的物…

如何处理前端响应式图片?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Jenkins+vue发布项目

在Jenkins 中先创建一个任务名称 然后进行下一步,放一个项目 填写一些参数 参数1: 参数2: 参数3:参数4: 点击保存就行了 配置脚本 // git def git_url http://gitlab.xxxx.git def git_auth_id GITEE_RIVER…

面试题:线程池中线程抛了异常,该如何处理?

文章目录 1. 模拟线程池抛异常2. 如何获取和处理异常方案一:使用 try -catch方案二:使用Thread.setDefaultUncaughtExceptionHandler方法捕获异常方案三:重写afterExecute进行异常处理 1. 模拟线程池抛异常 在实际开发中,我们常常…

2023年【四川省安全员A证】模拟试题及四川省安全员A证作业模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 2023年四川省安全员A证模拟试题为正在备考四川省安全员A证操作证的学员准备的理论考试专题,每个月更新的四川省安全员A证作业模拟考试祝您顺利通过四川省安全员A证考试。 1、【多选题】36V照明适用的场所条…