操作系统|day1.了解操作系统

文章目录

  • 了解操作系统
    • 定义
    • 目的
    • 操作系统体系结构
    • 功能
    • 特征
    • 操作系统的区别(64位与32位)
    • 操作系统的地址
    • 内存管理
    • 缓存

了解操作系统

定义

操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件

目的

方便性,有效性(提高系统资源的利用率,提高系统的吞吐量)

操作系统体系结构

在这里插入图片描述

功能

  1. 作为计算机系统资源的管理者:管理软硬件资源、合理的组织、调度计算机的工作与资源的分配

    • 处理器(cpu)管理:在多道程序环境下,cpu的分配和运行都以进程(或线程)为基本单位,因此对cpu的管理可理解为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
    • 存储器管理(内存):为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
    • 文件管理(硬盘):计算机中所有的信息都是以文件的形式存在的,操作系统中负责文件的管理的部分称为文件系统,文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
    • 设备管理:设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓存管理、设备分配、设备处理和虚拟设备等功能。
  2. 作为用户与计算机硬件系统之间的接口:为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口

    • 命令接口:用户可以直接使用的,利用这些操作命令来组织和控制作业的执行
      • 联机命令接口(cmd):又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。用户输入一条指令,操作系统就执行一条指令;
      • 脱机命令接口(.bat):又称批处理接口,使用于批处理系统,由一组作业控制命令组成。用户输入一堆指令,操作系统运行一堆指令。在操作系统运行这些命令时用户不可干预。
    • 程序接口:用户通过程序间接使用的,编程人员可以使用它们来请求操作系统服务,由一组系统调用(也称广义指令)组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,只能通过用户程序间接调用,如使用各种外部设备、申请分配和回收内存及其它各种要求
  3. 作为扩充机器(虚拟机):没有任何软件支持的计算机称为裸机,覆盖了软件的机器称为扩充机器或虚拟机

特征

  1. 并发性:

    • 并发:两个或多个事件在同一时间间隔内发生,这些时间在宏观上是同时发生的,在微观上是交替发生的.
    • 并行:两个或多个事件在同一时刻发生
  2. 共享性:资源共享即共享,是指系统中的资源可以供内存中多个并发执行的进程共同使用

    • 互斥共享:计算机中的某个资源在一段时间内只能允许一个进程访问,别的进程没有使用权,临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享

    • 同时共享:计算机中的某个资源在在一段时间内可以同时允许多个进程访问,同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行,“分时共享”,这里的同时指在宏观上是同时的,在微观上是交替进行访问的,只是cpu处理速度很快,我们感觉不到,在宏观上感觉是在同时进行

    • 实际上是宏观上是同时进行,微观上还是交替进行的

  3. 虚拟性:虚拟是把一个物理上的实体变为若干逻辑上的对应物。虚拟技术包括时分复用技术:如处理器的分时共享,空间复用技术:如虚拟存储器.具体的实现例如JVM,java虚拟机

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

操作系统的区别(64位与32位)

  1. 支持的系统不同
    • 32位的cpu处理器,只能安装32位的电脑操作系统;
    • 64位的cpu处理器,则可以安装32位和64位操作系统,所以64位处理器是向下兼容的;
    • 但是,如果真的在64位处理器的电脑上面安装32位操作系统,那么会导致处理器的性能无法充分发挥。
  2. 运行数据的速度不同
    • 32位和64位代表了cpu处理器,处理数据的最大位数,所以一次的运算量大不相同。
    • 32位处理器一次可以运算32bit(4个字节)数据,64位处理器一次可以运算64bit(8个字节)数据,类似于单车道和双车道,64位处理器比32位处理器性能提升了1倍。
    • 另外,它们的内存寻址也不一样。
  3. 支持内存大小不同
    • 32位操作系统,最大只能支持4G内存,实际应用中发现,最多只能识别到3.58G左右的内存。
    • 而64位操作系统就没有这样的局限,最大可以从4G、8G、16G、一直到128G,只要你的主板有足够的插槽。
  4. 软件
    • 32位操作系统,只能运行32位的软件,无法运行64位软件;
    • 64位操作系统,既能运行64位软件,也能运行32位软件,向下兼容;
  5. 系统体积大小不同
    • 32位的操作系统和64位操作系统的体积大小是不同的。
    • 比如win7系统旗舰版,32位的包装包是2.47G,64位的安装包是3.18G。

操作系统的地址

  1. 物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。
  2. 逻辑地址:逻辑地址是指在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(network host)的地址。
  3. 线性地址:线性地址(Linear Address)是逻辑地址到物理地址变换之间的中间层。

在分段部件中逻辑地址是段中的偏移地址,然后加上基地址就是线性地址。

内存管理

内存主要作用是在计算机运行时为操作系统和各种程序提供临时储存。

存在的位置主要是内存条

分类

  1. 物理内存:物理内存是相对于虚拟内存而言的。物理内存指通过物理内存条而获得的内存空间,
  2. 虚拟内存:虚拟内存则是指将硬盘的一块区域划分来作为内存。
    • 人们之所以要创建一个虚拟地址空间,目的是为了解决进程地址空间隔离的问题
    • 存在原因(也就是使用物理内存的不足)
      • 进程地址空间不隔离
      • 内存使用效率低
      • 程序运行的地址不确定

缓存

CPU芯片面积和成本的因素影响,决定了缓存都很小。现在一般的缓存不过几M,CPU缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。

存在于cpu中

缓存溢出

缓存溢出是指输入到一个缓冲区或者数据保存区域的数据量超过了其容量,从而导致覆盖了其它区域数据的状况。

攻击者造成并利用这种状况使系统崩溃或者通过插入特制的代码来控制系统。(缓冲区溢出攻击是最普遍和最具危害性的计算机安全攻击类型之一)

后果:

  1. 破坏程序的数据
  2. 改变程序的控制流,因此可能访问特权代码。

预防:

  1. 编译时防御系统,目的是强化系统以抵御潜伏于新程序中的恶意攻击
  2. 运行时预防系统,目的是检测并终止现有程序中的恶意攻击

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

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

相关文章

WEB安全:网络安全常用术语

一、攻击类别 漏洞:硬件、软件、协议,代码层次的缺陷。 后⻔:方便后续进行系统留下的隐蔽后⻔程序。 病毒:一种可以自我复制并传播,感染计算机和网络系统的恶意软件(Malware),它能损害数据、系统功能或拦…

RAG的学习与实践——LangChain和LlamaIndex学习笔记

RAG RAG(Retrieval Augmented Generation)系统,代表“检索增强生成”。RAG由五个关键步骤组成: 加载:这是指将数据从其所在位置(无论是文本文件、PDF、其他网站、数据库还是 API)获取到您的管道中。LlamaHub提供数百…

【Swiper】轮播图 笔记

文章目录 场景代码(6.8.4)代码(11.1.4) 场景 官网:Swiper - 最现代的移动触控滑块 - Swiper 中文 最近用svelte写轮播图,用了Swiper组件。需求是:一共三张图,来回切,保…

基于YOLOv8深度学习的CT扫描图像肾结石智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

comsol达西定律的小例子

comsol达西定律的小例子

【深度学习基础】环境搭建 Linux报错bash: conda: command not found...

目录 一、 问题描述二、 解决方法1. 在.bashrc文件中添加环境变量2. 卸载重装anconda 三、总结 一、 问题描述 在linux环境下安装anaconda时候报错:bash: conda: command not found… 二、 解决方法 1. 在.bashrc文件中添加环境变量 参考链接:【解决】…

【单片机毕业设计选题24054】-基于STM32的水质检测系统

系统功能: 主要功能模块原理图: 电源时钟烧录接口: 单片机和按键输入电路: 传感器采集电路: 资料获取地址 系统主要功能模块代码 初始化代码: /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration-----------------------------------------------…

电脑虚拟摄像头怎么使用?电脑摄像头可以被虚拟摄像头替代吗?8款推荐!

在数字化日益普及的今天,视频通话和在线会议已成为我们生活和工作中不可或缺的一部分。然而,当我们的电脑没有配备摄像头,或摄像头出现故障时,我们可能会面临一些不便。这时,电脑虚拟摄像头便成为了一个实用的解决方案…

前端面试题37(js递归)

在JavaScript中,递归是一种编程技术,它允许函数调用自身来解决问题。这种方法通常用于处理分治策略的算法,比如遍历树形结构、计算阶乘、 Fibonacci数列等。下面通过几个示例来说明如何使用递归。 1. 计算阶乘 阶乘是一个经典的递归示例&am…

[激光原理与应用-102]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 6 - 激光焊接系统的组成

目录 一、激光焊接系统的组成概述 1.1、核心部件 1.2、焊接执行部件 1.3、辅助系统 1.4、控制系统 1.5、其他辅助设备 二、激光器 2.1 按出光类型分 1. 脉冲激光器 2. 连续激光器 3. 准连续激光器(QCW) 4. 其他常见激光器 5. 应用领域 2.2…

C 语言中如何进行冒泡排序?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

JVM内存泄露的ThreadLocal详解

目录 一、为什么要有ThreadLocal 二、ThreadLocal的使用 三、实现解析 实现分析 具体实现 Hash冲突的解决 开放定址法 链地址法 再哈希法 建立公共溢出区 四、引发的内存泄漏分析 内存泄漏的现象 分析 总结 错误使用ThreadLocal导致线程不安全 一、为什么要有Thr…

Qt开发 | Qt绘图技术 | 常见图像绘制 | Qt移动鼠标绘制任意形状 | Qt绘制带三角形箭头的窗口

文章目录 一、基本绘图技术介绍二、常见的18种图形、路径、文字、图片绘制三、Qt移动鼠标绘制任意形状四、Qt绘制带三角形箭头的窗口 一、基本绘图技术介绍 Qt提供了绘图技术,程序员可以在界面上拖动鼠标,或者在代码里指定参数进行绘图。 Qt绘图技术介绍…

如何在 C 语言中实现链表?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

vue子组件调用父组件方法

父组件 页面<popoverss ref"pop" :goodspop"goodspop"></popoverss>子组件components: {"popoverss": () > import(../comm/popover.vue)},方法goodspop(e){console.log(e"----")return 9999;},子组件 方法props:[go…

习题练习以

题意&#xff1a;求i&M的popcount的和&#xff0c;i属于0……N 主要思路还是变加为乘。 举个例子N22&#xff0c;即10110 假设M的第3位是1&#xff0c;分析N中&#xff1a; 00110 00111 00100 00101 发现其实等价于 0010 0011 0000 0001 也就是左边第4位和第5…

《AIGC:智能创作时代》:AI创作革命来临,你准备好了吗?

想象一下&#xff0c;你正在欣赏一幅精美的画作&#xff0c;惊叹于其细腻的笔触和独特的构图。然而&#xff0c;当你得知这幅作品是由人工智能创作时&#xff0c;你会作何感想&#xff1f;这不再是科幻小说中的场景&#xff0c;而是我们正在经历的现实。 在这个AI技术飞速发展的…

QListWidget、QTreeWidget、QTableWidget的拖放

QListWidget、QTreeWidget、QTableWidget的拖放实验 QAbstractItemView::DragDropMode 的枚举值 QAbstractItemView::NoDragDrop0组件不支持拖放操作QAbstractItemView::DragOnly1组件只支持拖动操作QAbstractItemView::DropOnly 2组件只支持放置操作QAbstractItemView::DragDr…

Python中JSON处理技术的详解

引言 JSON&#xff08;JavaScript Object Notation&#xff09;作为当前最流行的数据传输格式&#xff0c;在Python中也有多种实现方式。由于JSON的跨平台性和简便易用性&#xff0c;它在数据交互中被广泛应用。本文将重点讨论如何熟练应用Python的JSON库&#xff0c;将JSON数…

FFmpeg 实现从麦克风获取流并通过RTMP推流

使用FFmpeg库实现从麦克风获取流并通过RTMP推流&#xff0c;FFmpeg版本为4.4.2-0。RTMP服务器使用的是SRS&#xff0c;我这边是跑在Ubuntu上的&#xff0c;最好是关闭掉系统防火墙。拉流端使用VLC。如果想要降低延时&#xff0c;请看我另外一篇博客&#xff0c;里面有说降低延时…