《操作系统》- 操作系统的基本概念

2023-11-03

一、操作系统的概念

1.1 操作系统的分类

UNIX是非常早期的操作系统,像Linux和MacOS都是基于UNIX延伸出来的操作系统,而安卓是由Linux延伸出来的,IOS是由MacOS延伸出来的。

现在大多数电脑的都是安装的windows,windows目前有不同的版本,windows7、windows10、windows11等…

DOS操作系统(也就是上图当中的黑框框命令窗口)是Microsoft公司推出的(在windows之前的操作系统),目前windows兼容了DOS操作系统,我们通过在windows系统当中使用windows+r然后输入cmd就可以进入DOS窗口命令。

DOS和Windows其实都是操作系统。并且都是微软研发的,DOS是一个单任务,单个用户,是基于CLI的操作系统,而Windows是一个多任务,多用户和基于GUI(图形化使用者介面)的操作系统。

1.2 计算机系统的构成

  • 用户
  • 应用程序
  • 操作系统(OS)
  • 硬件(裸机)

操作系统是软件和硬件所连接的桥梁,操作系统可以直接操控硬件,对于用户来说,用户可以通过软件来使用操作系统,同时也可以直接使用操作系统来操控硬件。

  • 用户直接使用操作系统案例:开关电脑声音,要知道声音他可是由电脑音响来控制的,操作系统为我们提供了图形化界面,我们可以直接通过鼠标或者键盘快捷键就可以操作音响。
  • 用户使用软件的案例:操作系统为软件提供了操作硬件的接口,就拿我们平时使用的视频播放器来说,一般常见的视频播放器都可以控制声音,本质上他就是调用的操作系统提供的音量接口来控制的。

1.3 操作系统都做了哪些事

操作系统(OS)是配置在计算机硬件上的第一层软件,我们称之为系统软件,我们平常使用的软件都称之为应用软件,应用软件是专门为某一应用目的而编制的软件,比如微信、QQ…他们都是安装在操作系统当中。

操作系统主要有以下功能:

  1. 用户界面:用户界面是操作系统的一部分,它为用户和在操作系统上运行的其他应用程序创建一个平台以相互通信。操作系统的用户界面便于用户控制其他软件并提供易用性。用户界面可以是3 种主要类型;命令控制、菜单驱动和图形用户界面。
  2. 资源管理:连接到计算机系统的设备,如内存、存储、I/O设备等,称为计算机资源。操作系统控制这些资源并能够有效地使用可用资源,从而使系统永远不会耗尽其资源。操作系统不仅控制这些资源,还检测资源的故障、检查状态并将资源相互连接。
  3. 任务管理:任何操作系统的任务管理程序都接受指令,对其进行分析和处理。任务管理利用计算机处理器的能力并将其分配给各种任务,控制中断。
  4. 文件管理:操作系统管理计算机上的文件,如创建、删除、访问、复制、移动、存储文件等。它还操作数据和程序,如发送和接收数据、移动和存储数据等。
  5. 实用程序:操作系统为用户和其他程序提供各种实用程序,例如文件碎片整理、数据压缩、数据备份和恢复、防病毒实用程序等。

二、操作系统的目标和功能

2.1 操作系统的目标

就拿windows系统为例,windows操作系统一直在更新迭代,那他版本升级的目标是什么?

  1. 有效性:提高系统的资源利用率和系统的吞吐量。
  2. 方便性:假如没有图形化界面操作系统,让用户都通过命令来控制硬件,计算机入门的门槛一下子就提升了,所以尽可能的全部采用傻瓜式操作。
  3. 可扩充性:计算机的硬件一直在快速的发展,由原先的内存8g可能现在都支持128g了,但是要保证操作系统能够适应硬件设备的发展。
  4. 开放性:软件发展的速度特别快,要降低计算机软件开发的门槛,也就是不管什么样的人都可以基于操作系统进行开发软件。

2.2 操作系统的功能

主要分为三大类:

OS作为计算机系统资源的管理者,他主要管理的都有什么资源?

OS提供了三种类型的接口:

  • 程序接口:给应用程序提供了一些可调用的接口,主要是供应用程序性通过接口来操控硬件。
  • 命令接口:doc命令窗口
  • GUI:图形化操作

操作系统将硬件资源抽象了出来,用户可以直接通过操作系统中的命令窗口和GUI来操作硬件资源,而应用程序可以通过系统调用和命令来操作硬件资源。而对于使用者而言封装了实现的细节。

我们打开一个浏览器,输入baidu.com,然后应用软件会通过操作系统当中的系统调用去访问硬件网卡设备。

硬件会根据输入的地址进行网络通信,硬件访问过后拿到响应再将数据返回给操作系统,操作系统拿到响应后再进行封装和处理然后再返回给我们的浏览器应用软件。浏览器最终再展示出来,我们才能看得到。

操作系统的系统调用对于用户来说是无感知的,他隐藏了实现的细节,我们一般能想得到的就是我输入baidu.com,然后浏览器给我返回了结果。

三、操作系统的特征

四个基本特征之间的关系

  • 虚拟、共享、异步的前提都是存在并发。
  • 并发的前提是存在共享。

3.1 并发

假如我们使用单核的处理器同时执行多个任务,宏观上以为他一下子同时运行了多个任务,微观上其实并非同时执行,只是由处理器在处理的过程把不同的任务完成了高速的切换,时间间距可能非常非常小,使我们根本无法察觉出来。

同理:就好比一个人在半个小时内可以完成刷牙、洗脸、刷碗。那他半小时支持的并发事务就是3。他三件事情其实并非同时执行的,因为他又不能分身。只是在半小时这个时间段内。

怎么证明cpu是在串行执行?

关于cpu我们可以通过windows系统-》打开任务管理器-》然后下方有个资源监视器-》打开后可以观察cpu就是在串行执行。

CPU和处理器本质上就是指的一个东西,一个CPU可以有多个内核,内核就是真正的物理核心(芯片硬件),而往往处理器会使用超线程技术,其将每个内核又可以分为两个线程。

而线程技术就是在单个内核基础上提供两个逻辑处理器,利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,所以两个物理核心就是四个线程,也就形成了四个逻辑处理器。

假设内核2,逻辑处理器4,能够并行执行线程数量,主要取决于逻辑处理器,4个逻辑处理器可以并行处理4个线程

但是可以并发处理几千个线程都没问题(底层是时间片轮转机制 RR 时间片快速切换,每个线程拥有时间片就可以获得执行权)

像我的电脑还是比较古老的笔记本电脑,是双核8G运行内存,当时因为电脑卡顿又加了16G的内存条,发现启动的软件多仍然卡顿,因为运行内存是存储的应用软件所暂存的数据,虽然内存是够用了,但是CPU跟不上,并没有什么卵用。

一般我们可以用最以下简单的方法来区别CPU的好坏:

  • CPU的核心数(干活的人数,干活的越多,当然越好)

  • CPU的线程数(逻辑处理器),就跟一个人有几只手可以干活一个意思,有的CPU只有一只手,超线程表示有2只手,另外一只手是辅助,一般情况下,8个人比4个人8只手厉害多了;

  • CPU的核显(核显即核心显卡指的是处理器(CPU)和图形处理器(GPU)集成在一块芯片上),这个对于没有独立显卡的电脑来说,非常重要,核显的频率和核心数都决定了电脑的干活速度。核显的频率主要有两个指标:

    • 基础频率(主频),主频就是一颗CPU的运行频率。比如i59400F处理器的主频是2.9Ghz,无论是单核还是多核,所有的核心都是工作在2.9Ghz。
    • 加速频率(睿频),睿频是Intel的一项加速技术,指当启动一个运行程序后,处理器会自动加速到合适的频率,而原来的运行速度会提升 10%~20% 以保证程序流畅运行的一种技术。
  • 内存频率,这个一般对CPU影响不大,对核显(因为核显要跟CPU共用内存)非常重要;

一般我们在购买电脑的时候,像某东就是把逻辑处理器称之为了线程数,处理器一般会有如下参数,假如没有独立显卡,那我们就需要看处理器的基准频率和加速频率了,当然是越高越好。

3.2 共享

关于共享资源分为了两种

  • 同时访问方式:像电脑磁盘就是典型的允许多个应用同时操作磁盘。如果不允许那还了得,我们将无法多个软件同时访问磁盘并且无法同时下载资源到磁盘。
  • 还有一些资源是互斥共享的:所谓互斥共享就是虽然资源是共享的,但是不能同时访问,假如同时访问的话需要分优先级进行排队。
    打印机就是典型的案例,假如多个应用同时调用打印,他会将要打印的内容存入到打印队列当中,然后一个一个打印。音频设备同样也是,假如你在看电视,突然来了个电话,这时候你电视声音就没有了,直接切换成了电话。

注意:有并发才会有共享,有共享才会有并发。

男子同时和四个女友约会属于并发还是并行?

答:当然是并发了,因为男子是一个人,他不能被同时共享,他只不过是约了4个人在不同的地方,然后男子来回场地切换

同时结婚是并发还是并行?

答:也是并发,同上一样。可以把男子理解成处理器,不能被共享。

3.3 虚拟

虚拟主要有两种实现

  • 时分复用技术:把时间分成多半给程序进行使用,比如电脑只有8个处理器,但是运行了上百个应用程序,逻辑上是同时在运行上百个应用,实际上是由8个处理器在不同的任务当中做高速的切换,比如1个任务执行2毫秒不管结束没结束,就立即切换到另一个任务,本身执行的速度就是非常快的,切换我们更感知不到了。
  • 空分复用技术:这个磁盘就是典型的案例,将一个固定大小的磁盘,进行分成了多个逻辑性的磁盘。硬件实际上还是一块磁盘。

3.4 异步

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

虽然是多个程序在同时运行,本质上是多个任务在异步的在执行,各任务各自独立执行,相互之间互不干扰。

比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进

参考:《马士兵操作系统讲解》https://www.bilibili.com/video/BV1Ha411e7D4/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《操作系统》- 操作系统的基本概念 的相关文章

  • window系统消失的c盘,实际占用与显示占用相差好多G

    问题 C盘一直显示的红色提醒 我c盘实际占用的空间只有33 1GB 而我的c盘总共大小是59 9GB 显示的剩余大小是1 35GB 也就是说我占用了58 11 和c盘的总文件大小相差了25GB 那么消失的25GB去了哪里 我百度过这个问题
  • fork之后子进程到底复制了父进程什么

    fork之后子进程到底复制了父进程什么 发表于2015 4 3 9 54 08 2161人阅读 分类 操作系统 include
  • MySQL基础(非常全)

    MySQL基础 一 MySQL概述 1 什么是数据库 答 数据的仓库 如 在ATM的示例中我们创建了一个 db 目录 称其为数据库 2 什么是 MySQL Oracle SQLite Access MS SQL Server等 答 他们均是
  • java调优总结

    JVM调优总结 序 几年前写过一篇关于JVM调优的文章 前段时间拿出来看了看 又添加了一些东西 突然发现 基础真的很重要 学习的过程是一个由表及里 再由里及表的过程 呵呵 所谓的 温故而知新 而真正能走完这个轮回的人 也就能称为大牛或专家了
  • VMware-Ubuntu安装bochs

    我的运行环境是VMware的Ubuntu 首先大家可以按照CSDN上的教程按照符合自己需求的虚拟机 我在上午还在VMware和virtualBox之间做选择 但是由于已经安装过了VMware 所以我就直接用了VMware 当然了 一千人眼中
  • 虚拟内存的最大容量与实际容量区别

    虚拟内存的最大容量与实际容量区别 1 概念介绍 虚拟内存的最大容量是计算机的地址结构 CPU寻址范围决定的 虚拟内存的实际容量是内存与外存之和 CPU寻址范围 两者的最小值 2 例题介绍 某计算机的地址结构是64位 按字节编址 内存大小51
  • gpuz怎么看显存颗粒

    gpuz可以帮助一些用户查看电脑的一切显卡参数 对于想要了解显卡的网友来说使用起来是非常方便的 不过有些网友是刚开始使用 还不知道gpuz怎么看显存颗粒 下面小编就教下大家gpuz查看显存颗粒的方法 首先 显存颗粒是显存的物理存储组成单元
  • 虚拟机管理程序、虚拟化和云: 深入剖析 PowerVM 虚拟机管理程序

    预备知识 Power 是没有限制的虚拟化 一些企业打算依靠 PowerVM 虚拟化将多个工作负载整合到较少系统上 从而提高服务器利用率 降低成本 Power VM 为基于 Power Systems 平台的高级 RAS 功能和领先性能为 A
  • win10 Enable developer Mode

    经过漫长的安装过程 win10终于装上了vs2015 rc 写个小程序试试 结果提示 根据提示打开 设置 更新 for developer 据说应该有这么个界面 但是这个界面根本出不来 直接闪退的说 翻 MSDN 终于翻出了解决方法 htt
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • 操作系统 段页式存储管理

    一 引入 分页系统是以页面作为内存分配的基本单位 能有效地提高内存利用率 但信息共享等不方便 分段系统是以段作为内存分配的基本单位 它能够更好地满足用户多方面的需要 信息共享 动态链接等 但采用分区方式管理物理内存 仍然存在碎片问题 段页式
  • Linux常用命令记录

    文章目录 1 软件安装 安装软件 来自源服务器 安装 deb软件 来自本地 deb文件 修复依赖关系 卸载软件 2 文件 文件夹操作 删除文件夹 移动文件 文件重命名 3 程序查看 处理 进程查看 查看端口占用情况 强制终止程序 4 解压文
  • Anaconda 安装 Python 库(MySQLdb)的方法-(转)

    安装python库的过程中 最重要的地方就是版本需要兼容 其中操作系统为64位 Python为2 X 64位 下载安装文件的时候也要注意版本匹配 其中文件名中包含的cp27表示CPython 2 7版本 cp34表示CPython 3 4
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • 【操作系统】王道考研 p42 段页式管理方式

    段页式管理方式 知识总览 分段 分页管理方式中最大的优缺点 关于段式管理会产生外部碎片 ps 分段管理中产生的外部碎片也可以用 紧凑 来解决 只是需要付出较大的时间代价 分段 分页 段页式管理 示意图 先分段 后分页 段页式管理的逻辑地址结
  • CentOS Linux服务器安全设置

    转自 http www osyunwei com archives 754 html 引言 我们必须明白 最小的权限 最少的服务 最大的安全 所以 无论是配置任何服务器 我们都必须把不用的服务关闭 把系统权限设置到最小话 这样才能保证服务器
  • gdb attach 进程调试

    gdb调试正在运行的进程 GDB可以对正在执行的程序进行调度 它允许开发人员中断程序 并查看其状态 之后还能让这个程序正常地继续执行 gdb attach xxxxx xxxxx为利用ps命令获得的子进程process
  • Common块和Bss段的区别

    昨天看 程序员的自我修养 链接 装载与库 发现不是很理解为什么要用common块 然后仔细看了一番 有了自己的理解 common块 用来存放弱符号 而全局未初始化变量是弱符号 但是难道不是应该存放在 bss段吗 为什么要有common块呢
  • 八股文打卡day20——操作系统(3)

    面试题 线程同步的方式有哪些 我的回答 多线程同时访问和修改某个数据的话 会造成数据的不一致和冲突问题 所以就需要线程同步 线程同步的方式有 1 互斥锁 互斥锁就是 当一个资源被访问和操作时 会对这个资源加锁 把这个资源锁定 其他线程不能对

随机推荐

  • QT删除及创建文件夹

    bool DirMake const QString path QString full path GetFullPath path QDir dir full path if dir exists return true else ret
  • 2022-2023 通信工程专业毕业设计题目选题推荐 - 100例

    文章目录 1前言 2 如何选题 3 通信工程选题方向 2 1 移动通信方向 2 2 嵌入式开发方向 2 3 人工智能方向 2 4 物联网方向 2 5 算法研究方向 2 6 移动应用开发方向 2 7 网络通信方向 3 4 学长作品展示 4 最
  • 二维码PDF417简介及其解码实现(zxing-cpp)

    二维码PDF417是一种堆叠式二维条码 PDF417条码是由美国SYMBOL公司发明的 PDF Portable Data File 意思是 便携数据文件 组成条码的每一个条码字符由4个条和4个空共17个模块构成 故称为PDF417条码 P
  • 【C#学习笔记】数组使用

    using System namespace ConsoleApplication class Program static void Main string args int a new int 3 一维数组 int a new int
  • 如何通过cpolar内网穿透+VNC实现公网远程ubuntu

    文章目录 前言 1 ubuntu安装VNC 2 设置vnc开机启动 3 windows 安装VNC viewer连接工具 4 内网穿透 4 1 安装cpolar 支持使用一键脚本命令安装 4 2 创建隧道映射 4 3 测试公网远程访问 5
  • 毕业设计-基于协同过滤算法的电商平台推荐系统

    目录 前言 课题背景和意义 实现技术思路 一 文献综述 二 基于用户协同过滤推荐系统算法 三 实证分析 四 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计
  • mysql DATE_FORMAT导致索引失效

    最近在优化一个统计的接口 在几十万的数据统计下 接口处理的响应时间达到了20s 看了下代码逻辑 发现其中主要有三个主要的统计方法 在优化了其中一个方法的统计逻辑后 接口的响应时间下降到了3s内 还是没有达到期望的响应时间 1s内 看了下另外
  • 决策树——依据水果特征分类

    文章目录 一 获取数据集 1 提取数据 2 划分数据 二 计算信息增益 1 信息熵 2 计算信息增益 三 绘制决策树 四 分类预测 一 获取数据集 水果中苹果和杨桃外部特征比较鲜明 例如下面两张苹果 杨桃图片 苹果颜色为红色 形状大致为椭圆
  • 优化代码逻辑之 K-近邻算法之鸢尾花实例 使用Spark实现KNN的Demo2

    这篇代码是KNN的优化 代码就是 flatMap里面的结构转换 和aggregate的应用感觉有点难理解 但是思想简单 首先要知道这个优化是基于 有个大数据的思想 分而治之 求出一份数据最大的前一百个数 如果数据太多 内存太小 则将数据切割
  • AndroidStudio AIDL 示例代码详细步骤

    AIDL Android Interface Definition Language 即Android接口定义语言 最近在看Binder的原理 Android里面AIDL就是Binder的经典实现 先记录一下AIDL的使用步骤 1 服务端S
  • 神奇的master公式(递归行为时间复杂度)

    master master公式是干嘛的呀 master公式是干嘛的呀 master是一个对于递归行为时间复杂度的估算 公式为 T N a T N b O N d 不用急我们来举一个栗子 我们先来看看二分法求最大值的代码 public int
  • 疯狂的程序员--绝影

    该博客转自新浪博客 作者 疯狂之桥 网址 http blog sina cn dpool blog s blog a46817ff010157cf html vt 4 今天看到绝影的CSDN博客由于种种原因被关闭了 心中有种说不出的感觉 感
  • python爬虫(一)

    目录 前言 一 爬虫简介 1 1 Python爬虫 1 2 robots协议 二 爬虫分类 2 1 通用网络爬虫 2 2 垂直网络爬虫 2 3 增量式网络爬虫 2 4 分布式网络爬虫 2 5 深度网络爬虫 2 6 搜索引擎爬虫 三 爬虫构造
  • [学习交流] OC学习笔记之id类型及应用场景

    1 NSObject访问子类方法 NSObject是所有类的基类 可以指向任何子类 例如 import
  • 【暴力破解】dvwa

    dvwa暴力破解练习 1 low 首先进行抓包 将包发送到intruder 然后对用户及密码进行暴力破解 成功 Mid 在low的基础上添加了一定的时延 不适合大量字典 但是爆破方式与low相同 High 点击进表单页面抓包包1 放掉之后再
  • parseInt()详解

    可能绝大多数学过js的就知道parseInt 函数 这里对小伙伴来说是有一个难点或者说是误区的 好吧 说的就是我 那就是在官方给的解释中我们能看到其中一个参数 radix 文中多次说他为基数 千万不要把它理解为要转换的进制 看上面的这些可能
  • docker 重启gitlab_Gitlab+CICD自动化部署Python项目

    使用CICD原理 当我们push项目到gitlab 就会触发 gitlab ci yml 文件 文件里面的 only maste表示 当push的分支为master则执行脚本 执行时通过tags shell选择已有的runner去执行 这时
  • 微信小程序——关于时间

    获取当前时间 var time new Date var year dateNow getFullYear var month dateNow getMonth 1 var day dateNow getDate var date year
  • 【2023最新版】Linux (WSL:Ubuntu22.04)安装Go1.20.6+Win11:安装Go1.20.6+GoLand2023.1.4+配置环境

    目录 一 Windows安装Go 1 下载地址 2 安装 3 配置Go环境变量 位置 默认添加的环境变量 修改环境变量 新建以下文件夹 检查 二 Linux WSL 安装Go 1 下载 2 解压缩 3 查看安装在系统上的Go版本 4 设置G
  • 《操作系统》- 操作系统的基本概念

    目录 一 操作系统的概念 1 1 操作系统的分类 1 2 计算机系统的构成 1 3 操作系统都做了哪些事 二 操作系统的目标和功能 2 1 操作系统的目标 2 2 操作系统的功能 三 操作系统的特征 3 1 并发 3 2 共享 3 3 虚拟