计算机系统概述

news2024/9/25 3:18:51

操作系统概述

计算机系统概述

    • 一、操作系统的概念
      • 1、定义
      • 2、功能和目标
    • 二 、操作系统特征
      • 1、并发性
      • 2、共享性
      • 3、虚拟性
      • 4、异步性
    • 三、操作系统的发展
      • 1、手工操作阶段
      • 2、批处理阶段——单道批处理系统
      • 2、批处理阶段——多道批处理系统
      • 3、实时操作系统
    • 四、运行机制和体系结构
      • 1、运行机制
        • ①指令
        • ②处理器状态
        • ③程序
      • 2、体系结构
        • ①内核
        • ②大内核和微内核
    • 五、中断和异常
      • 1、概念和作用
        • 过程
      • 2、分类
      • 3、外中断处理过程
    • 六、系统调用
      • 1、概念和作用
      • 2、功能分类
      • 3、系统调用背后的过程
    • 问题与思考
        • 系统调用不涉及用户态吗
        • 中断和系统调用的关系

一、操作系统的概念

1、定义

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

image-20220111135926148

2、功能和目标

①作为系统资源的管理者

提供的功能:处理机管理,存储器管理,文件管理,设备管理

目标:安全高效

②作为用户和计算机硬件之间的接口

提供的功能:命令接口(联机命令接口/脱机命令接口),程序接口,GUI

目标:方便用户使用

命令接口(用户直接使用

  • 联机命令接口是 用户说一句,系统做一句 (交互式
  • 脱机命令接口是 用户说一堆,系统做一堆

程序接口 = 系统调用 :由一组系统调用组成(用户只能通过程序间接使用

程序接口 = 系统调用 = 系统调用命令 = 广义指令

GUI:图形用户界面W

③作为最接近硬件的层次

目标:实现对硬件机器的扩展

二 、操作系统特征

操作系统四大特征:并发性、共享性、虚拟性和异步性

1、并发性

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

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

2、共享性

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

操作系统的共享性 是 指系统中的资源可供内存中多个并发执行的进程共同使用。

共享方式有两种,互斥共享方式和同时共享方式。

  • 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。(示例:qq和微信视频,同一时间段只能分配给其中的一个进程)
  • 同时共享方式:系统中的某些资源,允许一个时间段内由多个进程"同时"对它们进行访问。(示例:qq发送A文件,微信发送B文件。两个进程交替着访问硬盘,宏观上,两个都在同时读取并发送文件)

如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义

如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发

3、虚拟性

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

虚拟技术,有空分复用技术(如虚拟存储器技术)和时分复用技术(如虚拟处理器)

如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义。因此,没有并发性,就谈不上虚拟性。

4、异步性

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

只有系统拥有并发性,才有可能导致异步性

三、操作系统的发展

操作系统的发展进程的顺序为,手工操作系统-单道批处理系统-多道批处理系统-分时操作系统-实时操作系统

其他操作系统有网络操作系统,分布式操作系统和个人计算机操作系统。

1、手工操作阶段

输入/输出速度慢,处理速度快

**缺点:**用户独占全机、人机速度矛盾导致资源利用率极低。

2、批处理阶段——单道批处理系统

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

**优点:**缓解了一定程度的人机速度矛盾,资源利用率有所提升。

**缺点:**内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。

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

每次往内存中输入多道程序。

操作系统正式诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行

优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持”忙碌“状态,系统吞吐量增大。

缺点:用户响应时间长,没有人机交互功能。

单道和多道的区别

单道

image-20221229214957333

多道

image-20221229215055684

3、实时操作系统

在实时操作系统的控制下,计算机系统接受到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性

实时操作系统,有硬实时系统和软实时系统。

  • 硬实时系统:必须在绝对严格的规定时间内完成处理。(如:导弹控制系统、自动驾驶系统)
  • 软实时系统:能接受偶尔违反事件规定。(如:12306火车订票系统)

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

四、运行机制和体系结构

1、运行机制

运行机制,包括两种指令、两种处理器状态和两种程序。它们有密不可分的关系。

①指令

特权指令和非特权指令。特权指令不允许用户程序使用。

②处理器状态

用户态和核心态

  • 用户态下的CPU只能执行非特权指令
  • 核心态下的CPU特权指令、非特权指令都可以执行。

用程序状态字寄存器(PSW)中某标志位来标识当前处理器处于什么状态。如:0为用户态,1为核心态。

③程序

内核程序和应用程序

  • 内核程序,是系统的管理者,即可以执行特权指令,也可以执行非特权指令。运行在核心态。
  • 应用程序,只能执行非特权指令,运行在用户态。

2、体系结构

①内核

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。

实现操作系统内核功能的那些程序就是内核程序。

image-20220111144310293

内核中的功能,有时钟管理、中断管理、原语等功能。

  • 时钟管理,实现计时功能。
  • 中断处理,负责实现中断机制。
  • 原语,是一种特殊的程序,这种程序的运行具有原子性——其运行只能一气呵成,不可中断。 处于操作系统最底层,是最接近硬件的部分。运行时间较短、调用频繁。
  • 对系统资源进行管理的功能,进程管理,存储器管理和设备管理。

②大内核和微内核

image-20220111144441580

大内核

​ 将操作系统的主要功能模块都作为系统内核,运行在核心态

​ 优点:高性能

​ 缺点:内核代码庞大,结构混乱,那以维护。

微内核

​ 只把最基本的功能保留在内核。

​ 优点:内核功能少,结构清晰,方便维护

​ 缺点:需要频繁地在核心态和用户态之间切换,性能低。

五、中断和异常

1、概念和作用

中断,可以使CPU从用户态转换为核心态,使操作系统获得计算机的控制权。

有了中断,才能实现多道程序并发执行。

过程

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理。

用户态、核心态之间的切换是怎么实现的?

“用户态->核心态” 是通过 中断 实现的。并且中断是唯一途径。

”核心态->用户态“ 的切换是通过执行一个特权指令,将程序状态字(PSW) 的标志位设置为“用户态”

2、分类

一种分类,中断分为内中断和外中断。

  • 内中断,也称异常、例外、陷入,又分为
    • 自愿中断——指令中断(系统调用时使用的访管指令)
    • 强迫中断——硬件故障(缺页)与软件中断(整数除0)
    • 来源于CPU内部。
  • 外中断,又分为
    • 外设中断(I/O操作完成发出的中断信号)
    • 人工中断(用户强行终止一个进程)
    • 信号来源为CPU外部。

本质区别来源于CPU内部还是外部

另一种分类方式

  • 内中断(内部异常)
    • 陷阱、陷入(trap) 系统调用
    • 故障 (fault) 由错误条件引起的,如缺页
    • 终止 (abort)不可恢复的致命错误这咋总成的结果,终止处理程序不再将控制返回引发的应用程序,如整数除0
  • 外中断
    • I/O中断请求
    • 人工中断

3、外中断处理过程

image-20220111145638756

六、系统调用

1、概念和作用

image-20221229222922479

系统调用,是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此用户程序中,凡是与资源有关的操作(如存储分配、I/O操作,文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性。

2、功能分类

系统调用,有设备管理、文件管理、进程控制、进程通信和内存管理的功能。

  • 设备管理 完成设备的 请求/释放/启动 等功能
  • 文件管理 完成文件的 读/写/创建/删除 等功能
  • 进程控制 完成进程的 创建/撤销/阻塞/唤醒 等功能
  • 进程通信 完成进程之间的 消息传递/信号传递 等功能
  • 内存管理 完成内存的 分配/回收 等功能

3、系统调用背后的过程

image-20220111150623707

系统调用的相关处理在核心态进行

问题与思考

系统调用不涉及用户态吗

用户态通过系统调用进入核心态。

中断和系统调用的关系

  • 通过中断,操作系统从 用户态 转换成 核心态
  • 系统调用时使用的访管指令(又称为自陷、陷入、trap指令)是一种内中断方式
  • 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行

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

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

相关文章

Gitea 的邮件通知

有这样的一个需求,当仓库中被推送或者更新代码的时候,希望在邮件中收到邮件通知。 Gitea 是可以实现这个功能的,但是在默认情况下这个功能是关闭的。 修改配置文件 根据 Gitea 的安装不同,我们的配置文件在:vi /etc…

【正点原子FPGA连载】第六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第六章Petalinux…

【CS硕士三年级BetterBench】2022年终总结(脚踏实地,仰望星空)

2022年终总结 回忆录 2022年焦虑和快乐是这一年中最大的两种情绪了。焦虑主要是因为心里的三块石头,从年初就开始悬着。第一块石头,科研论文录用,第二个石头,拿到国奖,第三个石头是拿到满意的offer。目前只剩下最后一…

【Linux】多文件编译

目录 多文件编译 为什么要分两步编译: makefile文件 makefile里面安装 更改可调式版本 对比Windows中的VS 多文件编译 有以下文件 分两步: 第一步编译:.c->.o 第二步链接(可以不用写头文件):.o-…

《图解TCP/IP》阅读笔记(第九章)—— 网络安全相关

第九章 网络安全 本章旨在介绍互联网中网络安全的重要性及其相关的实现技术。 本章的内容在我看来,并没有前几章那么重要,大概有所了解就好。 9.1 TCP/IP与网络安全 起初,TCP/IP只用于一个相对封闭的环境,后来才发展为并无太多…

Python编程 匿名函数,高阶函数

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.匿名函数 1.匿名函数介绍 匿名函数应用 匿名函数作返回值 匿名函数作…

【数据结构】超详细!从HashMap到ConcurrentMap,我是如何一步步实现线程安全的!

什么是HashMap? 在了解 HashMap 之前先了解一下什么是 Map; 什么是Map? 定义 Map 是一个用于存储 Key-Value 键值对的集合类,也就是一组键值对的映射,在 Java 中 Map 是一个接口,是和 Collection 接口同…

注解@Resource,注解@Qualifier

1.在进⾏类注⼊时,除了可以使⽤ Autowired 关键字之外,我们还可以使⽤ Resource 进⾏注⼊,如下代码所示: 运行结果: Autowired 和 Resource 的区别 出身不同:Autowired 来⾃于 Spring,⽽ Reso…

拾遗增补(二)——线程组

目录1.线程关联线程组:1级关联2.线程对象关联线程组:多级关联3.线程组自动归属特性4.获取根线程组5.线程组里加线程组6.组内的线程的批量停止7.递归与非递归取得组内对象可以把线程归属到某一个线程组中,线程组中可以有线程对象,也…

58.Python的递归函数

58.Python的递归函数 文章目录58.Python的递归函数1.递归的形象解释2.定义3.步骤4.终止条件5.优点6.缺点7.调用深度8.课堂实例9.计算n的阶乘9.1什么是阶乘9.2计算5!1.递归的形象解释 我们首先看一段视频,来形象理解什么是递归。 视频作者:p…

完整的OpenDDS的发布订阅编写及源码(Windows)

一个完整的OpenDDS的发布订阅编写及源码,包括SimuMsg.idl、SimuMsg.mwc和SimuMsg.mpc,SimuMsgCommon_Export.h、publisher.cpp、subscriber.cpp、SimuMsgDataReaderListenerImpl.h和SimuMsgDataReaderListenerImpl.cpp、SimuMsgDataWriterListenerImpl.h和SimuMsgDataWriterL…

还有企业没有在用它嘛! 适配于多行业的管理系统,各企业之首选

在信息技术高速发展的现代社会,世界经济一体化和企业经营全球化已成为大势所趋。在此背景下,企业为增强自身的竞争力,就要强化管理,规范业务流程,提高透明度,加快商品资金周转,以及为流通领域信…

使用MariaDB线程池提高MySQL的扩展性

摘要:MySQL的线程池能够有效地解决大量短连接的性能问题,大幅提高MySQL数据库的扩展性。但官方MySQL的线程池在收费的企业版中才有,免费的社区版中没有这个功能,这里介绍MairaDB的线程池。 关于作者,姚远:…

不用梯子,GitHub也能访问并提速

引言 我们都知道国内访问github会非常慢,甚至打不开,具体原因这里就不聊了~我们这里聊怎么不用梯子,GitHub也能访问并提速! Github打开慢的原因 Github打开慢的原因其中一个原因:GitHub的CDN域名遭到DNS污染&#xf…

好用的开源个人博客推荐

原文网址:好用的开源个人博客推荐_IT利刃出鞘的博客-CSDN博客 简介 本文推荐个人从几十款开源个人博客中精选的几款开源博客。 halo Github 地址 :https://github.com/halo-dev/halo Star : 24.3k 简介 :一个优秀的开源博客应用。 技术 …

java学习day66(乐友商城)搜索过滤

1.过滤功能分析 首先看下页面要实现的效果: 整个过滤部分有3块: 顶部的导航,已经选择的过滤条件展示: 商品分类面包屑,根据用户选择的商品分类变化 其它已选择过滤参数 过滤条件展示,又包含3部分 商品分…

CNN神经网络

CNN神经网络0.引言0.1.卷积0.2.Relu函数0.3.池化pooling0.4.小节1.前向传播1.1.input layer --> convolution layer1.2.Hidden Layer --> convolution layer1.3.Hidden layer --> pooling layer1.4.Hidden layer --> full connected layer1.5.小节2.反向传播2.1.po…

如何实现微信和淘宝的扫码登录

1、引言 扫码登录这个功能,最早应该是微信的PC端开始搞,虽然有点反人类的功能(不扫码也没别的方式登录),但不得不说还是很酷的。 下面这张图,不管是IM开发者还是普通用户,应该很熟悉&#xff…

高德地图WebGIS

GIS:地理信息系统 1 Web前端JSAPI X.1 创建app ​​​​ X.2 地图显示

热榜,Alibaba最新发布SprinBoot:进阶原理实战与面试题分析指南

为什么要写这本书? 我们知道,Spring Boot是一个集成性的开源框架,内部整合了很多第三方组件和框架。这些组件和框架应用如此之广泛,以至于大家反而往往对如何更好地使用Spring Boot自身的功能特性并不是很重视。事实上&#xff0…