操作系统|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),它能损害数据、系统功能或拦…

C++ //练习 14.49 为上一题提到的类定义一个转换目标是bool的类型转换运算符,先不用在意这么做是否应该。

C Primer(第5版) 练习 14.49 练习 14.49 为上一题提到的类定义一个转换目标是bool的类型转换运算符,先不用在意这么做是否应该。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 class Date{…

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

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

OpenCV4 ——fatal error: opencv2/opencv.hpp: No such file or directory

fatal error: opencv2/opencv.hpp: No such file or directory #include <opencv2/opencv.hpp> 解决方案 这是因为opencv头文件的路径中多了一个opencv4的文件夹&#xff1a;/usr/include/opencv4/opencv2&#xff0c; 可以将opencv2拷贝到自己的include文件夹。 xxx:…

Jetson-AGX-Orin离线安装nvidia-jetpack

Jetson-AGX-Orin 离线安装nvidia-jetpack 1、制作离线nvidia-jetpack包 1.1、准备一台Jetson-AGX-Orin&#xff0c;烧录不带nvidia-jetpack的系统。 最好待离线安装jetpack的Orin系统是基于此系统扩展或者制作的。即烧录的系统为出厂系统。 1.2、将这台Jetson-AGX-Orin连上…

【Swiper】轮播图 笔记

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

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

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

comsol达西定律的小例子

comsol达西定律的小例子

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

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

Java锁升级详解:从偏向锁到重量级锁的演进

简介 在Java并发编程中&#xff0c;synchronized关键字是实现线程同步的一种常见机制。从JDK 1.6开始&#xff0c;为了提高性能&#xff0c;Java虚拟机&#xff08;JVM&#xff09;对synchronized进行了优化&#xff0c;引入了锁升级的概念。锁升级包括从无锁状态到偏向锁、轻…

同步与异步:.NET 中的 Task.WaitAll 和 Task.WhenAll

在 C# 中&#xff0c;异步编程通常涉及同时运行多个任务。处理多个任务的两种常见方法是 Task.WaitAll 和 Task.WhenAll。虽然它们看起来很相似&#xff0c;但它们的用途不同&#xff0c;并且用于不同的场景。本文探讨了 Task.WaitAll 和 Task.WhenAll 之间的区别&#xff0c;并…

C++ 字符串哈希(hush)讲解

文章目录 什么是哈希&#xff08;hash&#xff09;哈希原理实现过程其他练习 什么是哈希&#xff08;hash&#xff09; 哈希&#xff0c;又称 hash&#xff0c;它是密码学的基础&#xff0c;理解哈希是理解数字签名和加密通信等技术的必要前提。 在 C 中&#xff0c;哈希通常…

Centos搭建FTP

FTP搭建 安装vsftpd #安装vsftpd yum install vsftpd -y systemctl start vsftpd systemctl enable vsftpd systemctl restart vsftpd创建测试用户 #创建测试用户 useradd -d /home/ftptest -g ftp -s /sbin/false ftptest passwd ftptest #admin12#$.. echo "/sbin/fa…

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

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

SpringSecurity(Authorization Events)

Authorization Events 对于每个被拒绝的授权&#xff0c;都会激发一个 AuthorizationDeniedEvent。此外&#xff0c;还可以为授予的授权激发 AuthorizationGrantedEvent。 若要侦听这些事件&#xff0c;必须首先发布 AuthorizationEventPublisher。 Spring Security 的 Spri…

编译Linux内核, 制作迷你系统并在虚拟机里运行(2)

编译制作环境&#xff1a;ubuntu20.0.4 一&#xff0c;参考文档 Linux 系统裁剪--制作一个最小化的Linux iso镜像 https://blog.csdn.net/alfiy/article/details/122568957 按照上述文档的步骤&#xff0c;制作的iso启动不了&#xff0c;经过多次尝试&#xff0c;发现生成的…

【Go - 常见的5类函数用法】

函数 函数通过func关键字定义&#xff0c;后跟函数名、参数列表、返回类型。语法如下&#xff1a; func functionName(parameters) returnType {// 函数体 }示例 func add(x int, y int) int {return x y }func swap(x, y string) (string, string) {return y, x }变参函数…

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

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

C# 策略模式(Strategy Pattern)

策略模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 // 策略接口 public interface IStrategy { void Execute(); } // 具体策略A public class ConcreteStrategyA : IStra…

前端面试题37(js递归)

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