1-计算机系统概述

news2025/1/2 0:23:18

文章目录

  • 一.操作系统的基本概念
    • (一)操作系统的特征
    • (二)操作系统的目标和功能
  • 二.操作系统的发展与分类
    • (一)手工操作阶段
    • (二)批处理阶段
    • (三)分时操作系统
    • (四)实时操作系统
  • 三.操作系统的运行环境
    • 1.内核态/核心态/管态 & 用户态/目态
    • 2.中断
    • 3.系统调用
  • 四.操作系统的体系结构
    • (一)内核
    • (二)大内核 & 微内核
    • (三)操作系统结构
    • (四)操作系统引导
    • (五)虚拟机

一.操作系统的基本概念

操作系统是控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。

(一)操作系统的特征

并发、共享、虚拟、异步。其中并发和共享是操作系统两个最基本的特征,二者互为存在条件。

1.并发
两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。

2.共享
系统中的资源可供多个并发执行的进程使用
(1)互斥共享方式
在一段时间内只允许一个进程访问该资源
(2)同时访问方式
系统中的某些资源,允许一个时间段内,由多个进程“同时”对他们进行访问(宏观上同时,微观上交替)

3.虚拟
把一个物理上的实体变为若干逻辑上的的对应物

  • 虚拟存储技术:通过多道程序设计技术,采用让多道程序并发执行的方式,来分时使用一个处理器。分为时分复用技术(如处理器的分时共享)和空分复用技术(如虚拟存储器)
  • 虚拟存储器:采用虚拟存储技术将一台机器的物理存储器变成虚拟存储器,以便从逻辑上扩充存储器的容量。

4.异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进(争抢资源时不一定谁停下来等待)

(二)操作系统的目标和功能

1.操作系统的功能
处理机管理、存储器管理、文件管理、设备管理

2.向上层提供方便易用的服务/接口

(1)直接给用户使用的:GUI、命令接口

  • GUI(图形用户界面):用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。
  • 命令接口:
    ①联机命令接口/交互式命令接口:如cmd命令。用户说一句,系统做一句
    ②脱机命令接口/批处理命令接口:如将命令罗列在.bat文件中,系统依次执行每条语句。用户说一堆,系统做一堆

(2)给软件/程序员使用的:程序接口
程序接口由一组系统调用组成,编程人员可以使用它们来请求操作系统服务。如:C语言输出hello world时printf函数的底层使用了操作系统提供的显示相关的系统调用。

二.操作系统的发展与分类

(一)手工操作阶段

程序员通过在纸带上打孔的方式运行程序,手工操作时间过长,人机速度矛盾导致效率极低。

(二)批处理阶段

1.单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业。

程序员将程序放到纸带机上,由外围机将程序放到磁带上,计算机通过磁带读取程序,由监督程序负责自动从磁带中输入输出数据。

  • 优点:在一定程度上缓解了人机速度矛盾,资源利用率有所提升
  • 缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
    在这里插入图片描述
    在这里插入图片描述

2.多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种软/硬件资源。

特点:多道、宏观上并行、微观上串行
优点:资源利用率高,系统吞吐量大
缺点:用户响应时间较长,不提供人机交互能力

(三)分时操作系统

把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续执行。由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。

特点:同时性、交互性、独立性、及时性

①同时性:允许多个终端用户同时使用一台计算机
②交互性:用户能够方便的与系统进行人机对话,从而直接控制程序运行
③独立性:系统中多个用户可以彼此独立地进行操作,互不干扰
④及时性:用户请求能在很短时间内获得响应

缺点:不能优先处理紧急任务,完全公平。因此诞生了实时操作系统

(四)实时操作系统

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。

特点:及时性、可靠性

分类:硬实时系统(必须在绝对严格的规定时间内完成处理,eg.火箭发射)、软实时系统(能接受偶尔违反时间规定,eg.12306)

三.操作系统的运行环境

在这里插入图片描述

1.内核态/核心态/管态 & 用户态/目态

操作系统内核作为“管理者”,可能会让CPU执行一些特权指令,不正确使用特权指令可能影响其他程序正常运行,为了让CPU知道此时正在执行的指令是应用程序的指令还是内核程序的指令,引出了内核态和用户态,并通过PSW(程序状态字寄存器)中的某个二进制位确定当前状态
(1)内核态:正在运行的是内核程序,此时可以执行特权指令
(2)用户态:正在运行的是应用程序,此时只能执行非特权指令
(3)转化
①内核态→用户态:执行一条特权指令,修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权
②用户态→内核态:由“中断”引发,硬件自动完成CPU状态转换过程,触发中断信号意味着操作系统将强行夺回CPU使用权

  • 处理器为什么要区分核心态和用户态两种操作方式?在什么情况下进行两种方式的切换?
    区分执行态的主要目的是保护系统程序。用户态到核心态的转换发生在中断产生时,而核心态到用户态的转换则是在中断返回用户程序时。

2.中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

中断处理的过程:关中断→保存断点→中断服务程序寻址→保存现场和屏蔽字→开中断→执行中断服务程序→关中断→恢复现场和屏蔽字→开中断、中断返回

在这里插入图片描述

(1)内中断/异常
与当前执行的指令有关,中断信号来源于CPU内部

①故障。由错误条件引起的,可能被内核程序修复。内核程序修复故障后会把CPU使用权还给应用程序,让它继续执行下去。如:缺页故障。

②终止。由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终止该应用程序。如:参数非法(整数除0)、非法使用特权指令(试图在用户态下执行特权指令。在用户态发现特权指令,触发中断信号,拒绝执行该指令,并转变为内核态,执行处理中断信号相关的内核程序)

③陷入指令/trap指令/访管指令。陷入指令不是特权指令。应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令陷入指令,该指令会引发一个内部中断信号,CPU转向中断信号相应的处理程序进行处理。执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。 系统调用是通过陷入指令完成的。

  • 访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识的使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
  • 为什么要在程序中引入访管指令呢?
    用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,就要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
  • 处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。

(2)外中断
与当前执行的指令无关,中断信号来源于CPU外部

①时钟中断。时钟部件每隔一段时间给CPU发一个中断信号,通过时钟中断信号实现多道程序并发运行。
②I/O中断。由输入/输出设备发来的中断信号

CPU在执行指令时会检查是否有异常(内中断)发生,CPU在每个指令结束的时候都会检查是否有外中断信号。不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

在这里插入图片描述

3.系统调用

系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中。系统调用是通过陷入指令完成的。

系统调用的过程:传递系统调用参数→执行陷入指令(用户态)→执行相应的请求内核程序处理系统调用(核心态)→返回应用程序

  • 为什么要系统调用?
    凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
  • 说明库函数与系统调用的区别和联系
    库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(由用户态转向核心态)

四.操作系统的体系结构

(一)内核

在这里插入图片描述

  • 原语
    由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。
    特点:
    (1)处于操作系统的最底层,是最接近硬件的部分
    (2)这些程序的运行具有原子性,其操作只能一气呵成
    (3)这些程序的运行时间都较短,而且调用频繁

(二)大内核 & 微内核

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(三)操作系统结构

在这里插入图片描述

(四)操作系统引导

①CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
②将磁盘的第一块主引导记录读入内存,执行磁盘引导程序,扫描分区表
③从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作

在这里插入图片描述

(五)虚拟机

虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系统。

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

verilog学习笔记- 1)Quartus软件的使用

目录 新建工程: 设计输入: 配置工程: 编译 : 分配引脚: 编译工程: 下载程序: 固化程序 : 在开始使用 Quartus 软件之前,我们先来了解一下 Quartus 软件的使用流程…

Windows10 下的docker和Kubernetes安装

Docker官网Docker Desktop 安装 Docker官网 进入docker官网,下载windows版 docker desktop建议使用win10专业版在任务管理器查看是否开启了windows虚拟化如果没有开启,则在控制面板,启用或关闭windows功能,勾选Hyper-v&#xff…

面向对象1(类的成员变量的默认值规则、private、this、构造方法、基本数据类型和引用数据类型)

1、定义类的注意事项 类的成员变量的默认值规则 2、private 3、this关键字 语法是this. 4、构造方法 先Constructor生成构造方法,select无参构造,Ctrla全参构造 再Getter and Setter生成每个成员变量的getter 和 setter方法 也可以使用插件右键Ptg To …

java开发的美食菜谱网

简介 Java开发美食菜谱分享网站,健康专题分享,菜谱网源码。用户可以发布菜谱,可以评论,可以发布关于健康饮食的文章,还可以查看自己的主页。管理员可以管理所有的数据,审核数据。 演示视频 https://www.b…

ROS机器人底盘坐标像素变换

对于ROS小车底盘地图数据需要知道的点 1.整幅地图处于第三象限 2.坐标值代表距离,单位米。 3.分辨率单位(米/像素) 因此通过地图坐标得到像素坐标的办法: 像素坐标(实时坐标-初始坐标)/分辨率 实时坐标的获取: 触发条…

20230102单独编译Toybrick的TB-RK3588X开发板的Android12的内核【失败】

20230102单独编译Toybrick的TB-RK3588X开发板的Android12的内核【失败】 现阶段已经验证通过的编译指令: 直接使用build.sh编译了。 rootrootrootroot-adol-ADOLBOOK-I421UAY-ADOL14UA:~/toybrick3588_discrete$ source build/envsetup.sh rootrootrootroot-adol-A…

windows下编译opencv_contrib

文章目录基本环境二. 准备1. 下载所需各软件的安装文件2. 安装所需软件三.编译opencv步骤基本环境 cmaker:3.22.0vs2019:16.11.10CUDA:11.4.1cudnn:8.2.4opencv_source:4.5.4opencv_contrib:4.5.4python&a…

给程序员友人,2022投资总结的6000字评论

程序员友人的2022投资总结 以下是我的评论、回复。 友情提示:不好意思,长篇大论了,先长篇铺垫,再到正题。 下午说道:以我的最新投资原则方法,对你的持股情况,略显忧虑。 “一直放心不下”&#…

Ubuntu 18.04使用CMake编译可执行文件、动态链接库

目录准备新建文件编辑源文件编译生成可执行文件编译生成动态链接库准备 新建文件 在开始之前,我们先准备一个项目所需要的基本结构。 新建一个项目的文件夹test_so在项目文件夹中新建一个src文件夹存放源代码(并新建一个test.cpp文件)&…

基于 Prometheus 的监控平台简介

1. Prometheus 体系架构简介 Prometheus 是 CNCF 基金会的一款开源产品,主要用做监控系统,通常用来和 Zabbix 等监控系统做比较,以其简单易用、架构灵活著称。整个 Prometheus 的架构如上,分为几个重要的部分: 指标收…

Kubernetes:Ingress

文章目录1、安装 Ingress 控制器2、Ingress 扇出3、基于名称的虚拟托管4、Ingress TLSIngress 是一组路由规则,公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 Ingress 控制器是一组 pod,负责通过负载均衡器来解析 Ingress 路由规则,将请…

序列到序列学习(seq2seq,BLEU)

根据“编码器-解码器”架构的设计, 我们可以使用两个循环神经网络来设计一个序列到序列学习的模型。 在实现编码器和解码器时,我们可以使用多层循环神经网络。 我们可以使用遮蔽来过滤不相关的计算,例如在计算损失时。 在“编码器&#xf…

crackme01——Acid_burn

最近对逆向稍微有点兴趣,自学了一点。写这个文章主要用于记录学习的过程。 首先看一下这个程序,其实就是个简单的比对程序,主界面按左侧按钮进入Name Serial界面,点击【Check it Baby】,则弹出窗口【Sorry, The seria…

[Java]JDBC学习笔记(尚硅谷康师傅JDBC)

文章目录🥽 视频链接及资源下载🥽 JDBC简介🥽 JDBC程序访问数据库步骤🥽 获取数据库连接🌊 导入jar包🌊 Driver 接口🌊 JDBC URL🌊 方式1:🌊 方式2&#xff1…

educoder数据结构与算法 线性表 第2关:实现一个链接存储的线性表

本文已收录于专栏 🌲《educoder数据结构与算法_大耳朵宋宋的博客-CSDN博客》🌲 目录 本文已收录于专栏 🌲《educoder数据结构与算法_大耳朵宋宋的博客-CSDN博客》🌲 🍐任务描述🍐 🍐相关知识…

Java基础学习笔记(九)—— 常用API(2)

常用API1 Math类2 system类3 Object类3.1 概述3.2 常用方法3.3 常见面试题4 Objects类5 BigDecimal类5.1 构造方法5.2 常用方法6 时间日期类6.1 Date类6.2 SimpleDateFormat类6.3 JDK8新增日期类1 Math类 Math 包含执行基本数字运算的方法 Math中方法的调用方式:M…

Markdown 使用语法(详细)

想要学习Markdown,这篇文章就够了。 Markdow简介 Markdown 是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML&…

IEEE期刊投稿流程

一、注册过程 1.1、确定期刊。 首先可以通过IEEE搜索需要投稿的期刊(以TMC为例),然后点击Submit Manuscript ,进入ScholarOne主页 1.2、账号注册。 进入到ScholarOne之后,若没有注册过需要先注册一个账号。 1.3、创建账户。 点击Create an Account&a…

【LeetCode每日一题】【2023/1/2】1801. 积压订单中的订单总数

文章目录1801. 积压订单中的订单总数方法1:模拟优先队列part1priority_queue的使用part2求余代码1801. 积压订单中的订单总数 LeetCode: 1801. 积压订单中的订单总数 中等\color{#FFB800}{中等}中等 给你一个二维整数数组 orders ,其中每个 orders[i] …

基于springboot+Vue学生宿舍管理系统(程序+数据库+文档+代码解读)

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…