操作系统|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://xiahunao.cn/news/3224964.html

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

相关文章

爆破器材期刊

《爆破器材》简介   《爆破器材》自1958年创刊以来,深受广大读者喜爱,是中国兵工学会主办的中央级技术刊物,在国内外公开发行,近几年已发行到10个国家和地区。《爆破器材》杂志被美国著名检索机构《化学文摘》(CA&a…

面试官:讲一下如何终止一个 Promise 继续执行

我们知道 Promise 一旦实例化之后,状态就只能由 Pending 转变为 Rejected 或者 Fulfilled, 本身是不可以取消已经实例化之后的 Promise 了。 但是我们可以通过一些其他的手段来实现终止 Promise 的继续执行来模拟 Promise 取消的效果。 Promise.race …

基于Java的学生选课系统

第1章 系统概述 1.1概述 背景:随着计算机网络技术的发展,Web 数据库技术已成为应用最为广泛的网站架构基础技术。学生选课系统作为教育单位不可缺少的部分,其内容对于学校的决策者和管理者至关重要。传统的人工管理方式存在效率低、保密性差等…

python学习-错误与异常

代码是人的逻辑思维的具体体现,因为没有一个人的逻辑思维是完美无缺的,所以人在编写代码时必然会出现各种错误。既然错误或多或少都会发生,那么如何捕捉错误,并且捕捉到错误后要如何处理,就显得很重要。 语法错误 Py…

练手项目---笔记大师

练手项目—笔记大师 项目地址 https://github.com/GXY00/NoteMaster/tree/master 给个⭐呗 项目功能实现 大部分功能已完成,少部分仍在学习中 主要用到的知识点: 开机动画:Timer、TimerTask登录注册功能:SQLitesharedPref…

[C++][ProtoBuf][Proto3语法][三]详细讲解

目录 1.默认值2.更新消息1.更新规则2.保留字段reserved 3.未知字段1.是什么?2.未知字段从哪获取 4.前后兼容性5.选项option1.选项分类2.常用选项列举3.设置自定义选项 1.默认值 反序列化消息时,如果被反序列化的⼆进制序列中不包含某个字段,…

解读网络安全公司F5:助企业高效简化多云和应用部署

伴随企业加速数字化转型工作、扩展到新的基础设施环境并采用微服务架构,企业正拥抱混合和多云基础设施所带来的灵活性。Ernst & Young调查数据显示,84%的企业正处于向现有网络安全解决方案套件添加多种新技术的早期阶段。企业同样意识到,…

JavaWeb—js(3)

Bom dom: document object model(文档对象模型), 是处理html、xml的标准编写接口。 节点和元素 整个页面也就是整个文档我们称之为文档节点; 文档节点使用document来表示; 页面中的所有标签我们称之为元素,使用element来表示; 如此处的文本、属性、注释等&…

AirPods Pro新功能前瞻:iOS 18的五大创新亮点

随着科技的不断进步,苹果公司一直在探索如何通过创新提升用户体验。iOS 18的推出,不仅仅是iPhone的一次系统更新,更是苹果生态链中重要一环——AirPods Pro的一次重大升级。 据悉,iOS 18将为AirPods Pro带来五项新功能&#xff0…

Mysql练习题目【7月10日更新】

七、Mysql练习题目 https://zhuanlan.zhihu.com/p/38354000 1. 创建表 创建学生表 mysql> create table if not exists student(-> student_id varchar(255) not null,-> student_name varchar(255) not null,-> birthday date not null,-> gender varchar(…

C++ | Leetcode C++题解之第226题翻转二叉树

题目: 题解: class Solution { public:TreeNode* invertTree(TreeNode* root) {if (root nullptr) {return nullptr;}TreeNode* left invertTree(root->left);TreeNode* right invertTree(root->right);root->left right;root->right …

硬件:CPU和GPU

一、CPU与GPU 二、提升CPU利用率:计组学过的 1、超线程一般是给不一样的任务的计算使用,而非在计算密集型工作中 2、Cpu一次可以计算一个线程,而gpu有多少个绿点一次就能计算多少个线程,Gpu比cpu快是因为gpu它的核多,…

看影视学英语(假如第一季第一集)

in the hour也代表一小时吗?等同于in an hour?

文件操作和IO流

前言👀~ 上一章我们介绍了多线程进阶的相关内容,今天来介绍使用java代码对文件的一些操作 文件(file) 文件路径(Path) 文件类型 文件操作 文件系统操作(File类) 文件内容的读…

c++ learn third day

1.津津的储蓄计划 参考&#xff1a;http://t.csdnimg.cn/XI1HV 记得最后加上num&#xff01;&#xff01;&#xff01; #include<stdio.h> int main() {int arr[13]{0};int num0,i0,j;double sum0;for(j1;j<12;j){scanf("%d",&arr[j]);}for(i1;i<…

(图文详解)小程序AppID申请以及在Hbuilderx中运行

今天小编给大家带来了如何去申请APPID&#xff0c;如果你是小程序的开发者&#xff0c;就必须要这个id。 申请步骤 到小程序注册页面&#xff0c;注册一个小程序账号 微信公众平台 填完信息后提交注册 会在邮箱收到 链接激活账号 确认。邮箱打开链接后&#xff0c;会输入实…

谷粒商城学习笔记-22-分布式组件-SpringCloud-OpenFeign测试远程调用

文章目录 一&#xff0c;OpenFeign的简介二&#xff0c;OpenFeign的使用步骤1&#xff0c;场景说明2&#xff0c;引入依赖2&#xff0c;开启OpenFeign3&#xff0c;编写Feign接口4&#xff0c;使用feign调用远程接口5&#xff0c;验证 错误记录 上一节学习了注册中心&#xff0…

Linux——多线程(四)

前言 这是之前基于阻塞队列的生产消费模型中Enqueue的代码 void Enqueue(const T &in) // 生产者用的接口{pthread_mutex_lock(&_mutex);while(IsFull())//判断队列是否已经满了{pthread_cond_wait(&_product_cond, &_mutex); //满的时候就在此情况下等待// 1.…

泛微开发修炼之旅--36通过js控制明细表中同一列中多个浏览框的显示控制逻辑(明细表列中多字段显示逻辑控制)

文章链接&#xff1a;36通过js控制明细表中同一列中多个浏览框的显示控制逻辑&#xff08;明细表列中多字段显示逻辑控制&#xff09;

【基于R语言群体遗传学】-13-群体差异量化-Fst

在前几篇博客中&#xff0c;我们深度学习讨论了适应性进化的问题&#xff0c;从本篇博客开始&#xff0c;我们关注群体差异的问题&#xff0c;建议大家可以先看之前的博客&#xff1a;群体遗传学_tRNA做科研的博客-CSDN博客 一些新名词 Meta-population:An interconnected gro…