现代操作系统第一章学习笔记

news2024/10/6 18:34:06

先附上一个原版的课后习题答案的链接。
课后习题答案

1.1 什么是操作系统

操作系统:他的任务是为应用程序提供一个更好、更简单、更清晰的计算机模型,并管理贮存、磁盘等所有设备。

计算机系统总的来说分为软件和硬件,如下图所示。多数计算机有两种运行模式:内核态和用户态。软件中最基础的部分是操作系统, 它运行在内核态。操作系统具有对所有硬件的完全访问权限,可以执行机器能够运行的任何指令。 软件的其余部分运行在用户态,只能使用部分机器指令。特别指出,那些会影响机器的控制或可进行I/O操作的指令,在用户态中的程序是禁止的。 无法直接运行指令,则只能通过操作系统提供的接口来达到目的。
操作系统由硬件进行保护,防止用户试图对其进行修改。

大家都操作过Windows、Linux等操作系统,感觉这是不是就是操作系统? 这些与用户交互的程序,实际上并不是操作系统的一部分,经它们使用操作系统来完成工作,基于图标的称为图形用户界面(GUI, Graphical User Interface),我们所用的Windows就是这种,可以看到各种图标; 基于文本的则通常称为shell, 比如我们在Windows中使用cmd命令, 或者在Ubuntu中是Xshell等软件程序。
操作系统和普通软件(用户态)之间的主要区别是:如果用户不喜欢某个特定的电子邮件阅读器,他可以自由选择另一个,或者自己写一个,但是不能自行写一个属于操作系统一部分的时钟中断程序。这个程序由硬件保护,防止用户试图对其进行修改。

不过,在嵌入式系统(没有内核态)或解释系统(如基于Java的操作系统,它采用解释方式,而非硬件方式区分组件), 上述区分是比较模糊的。

在这里插入图片描述
操作系统是一种运行在内核态的软件,但这个说法并不总符合事实, 不过操作系统概括起来主要有两个作用:

  • 为应用程序提供一个资源集的清晰抽象
  • 管理硬件资源

自顶向下看:操作系统为应用程序提供基本抽象,从而使应用程序在此基础上可以组合功能。

自底向上看:操作系统用来管理复杂系统的各个部分,对资源的请求进行分配,调节不同程序见相互冲突的资源请求。其中, 资源的管理有两种不同方式实现多路复用(共享)资源:时间上复用和空间上复用:

时间上复用:当一种资源在时间上复用时,就是不同程序或者用户轮流使用它,大家排队使用。CPU就是这种操作, 一个位置,大家轮流坐
空间上复用:每个程序都得到资源的一部分,从而取代了客户排队。这就是多个位置,一人坐一个。内存就是这样分配。

1.2 操作系统的历史

第一代:真空管和穿孔卡片

第二代:晶体管和批处理系统

第三代:集成电路和多道程序设计

第四代:个人计算机(大规模集成电路)

第五代:移动计算机(手机、平板等)

1.3 计算机硬件简介

1.3.1处理器

先附图,所有设备都是通过总线连接的:
在这里插入图片描述

计算机的大脑是cpu 。 从内存中取出指令并执行。
在每个cpu基本周期中,首先从内存中取出指令,解码以确定其类型和操作数,接着执行之,然后取值、解码并执行下一条质量,按照这一方式程序被执行完成。

每个CPU都一套可执行的专门指令集。所以x86不能执行ARM程序,ARM处理器也不能执行x86程序。

CPU内部有一些用来保存关键变量和临时数据的通用寄存器、还有一些专用寄存器,如程序计数器(PC),它保存了将要取出的下一条指令的内存地址,在指令取出之后,程序技术器就被更新以便指向后继的指令。
堆栈指针(指向当前内存中栈顶位置)、程序状态字寄存器( PSW, 包含了条件码位、CPU优先级、内核态/用户态以及其它控制位)。

许多现代CPU通常可以同时取出多条指令。CPU取出指令执行的机制,是通过内部的取指单元、解码单元、执行单元三部分完成。当CPU执行指令n时,还可以对指令n+1解码,并读取指令n+2。这样,当执行完指令n后,无需等待,就可以直接执行n+1,然后n+2,这样的机制,称为流水线(pipeline)

在这里插入图片描述intel和AMD的不同CPU设计:
在这里插入图片描述

1.3.2 存储器

典型的存储层次结构及其一个大概的访问时间如下:
在这里插入图片描述
存储系统的顶层是CPU中的寄存器,它用和CPU一样的材料制成,和CPU一样快,访问没有时延。其典型的存储容量:32位CPU为32x32位,在64位CPU中为64x64位。程序必须在软件中自行管理这些寄存器。

下一层是高速缓存,他多数由硬件控制。CPU读取数据时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中,如果是,则称为高速缓存命中。提升高速缓存命中有利于提升效率。

再下一层是主存,这是存储器系统的主力,主存通常称为随机访问存储器(RAM),过去又是称之为磁芯存储器。除了主存之外,许多计算机已经在使用少量的非易失性随即访问存储器,只读存储器(ROM)在工厂中就被编程完毕,然后再也不能被修改。
EEPROM(电可擦除可编程ROM)和闪存也是非易失性的,但是和ROM相反,他们可以擦除和重写。
下一个层次是磁盘,磁盘同RAM相比,每个二进制位的成本低两个数量级以上,所以容量大且便宜,但是读取速度低。
在这里插入图片描述
在任意一个给定臂的位置,每个磁头可以读取一段环形区域,称为磁道。把一个给定
臂的位置上所有磁道合并起来,组成了一个柱面。

1.3.4 I/O设备:

I/O设备就是输入输出设备,比如键盘、鼠标、打印机、硬盘灯。I/O设备一般包含两部分:设备控制器和i/o设备本身。控制器是插在电路板上的一块或一组芯片。

每一类设备控制器都是不同的,需要不同的软件进行控制,专门与控制器对话,发出命令并接收响应的软件,叫做设备驱动程序(device driver).

实现输入输出有三种方式。
第一种,用户程序发出一个系统调用,内核将其翻译成一个对应设备驱动程序的过程调用,然后设备驱动程序启动I/O并在一个连续不断的循环中检查该设备,看该设备是否完成了工作。当I/O结束后,设备驱动程序把数据送到指定的地方,并返回,然后操作系统将控制返回给调用者。这种方式称为忙等待。缺点:占据CPU一直等待I/O的数据,直CPU一直轮询设备知道对应的IO操作完成。

第二种是通过中断机制,设备驱动程序启动设备并且让该设备在操作完成时发出一个中断。需要I/O时,先让I/O设备执行对应操作,这个时候CPU不需要等待,继续做其他事情,如果I/O执行完,拿到数据了,这个时候由中断控制器对CPU发起一个中断,处理这个I/O得到的数据。大白话就是先让CPU处理其他事情,当得到I/O数据后,告诉CPU,你先停一下现在手头上的事儿,你刚刚要的数据准备好了,现在给你,你处理下。

第三种,使用直接存储器访问芯片(DMA,Direct Memory Access),可以控制内存和某些控制器之间的的位流,DMA得到数据时,也会对CPU发起中断。

1.3.5 总线

总线就是CPU连接其他设备的线,各种设备间的数据传输通过总线完成。刚开始那张示例图已经展示了,现在再来张总线的示例图:
在这里插入图片描述

1.3.6 启动计算机(的过程)

通电后,系统首先启动BIOS里面的程序, BIOS全称基本输入输出系统(Basic Input Output System), 内部包含一些基本的参数设置,以及接下来要启动的程序,从而把系统启动起来。

1.4 操作系统大观园(各种操作系统)

操作系统有很多,主要有:大型机操作系统、服务器操作系统、多处理器操作系统、个人计算机操作系统、掌上计算机操作系统、嵌入式操作系统、传感器节点操作系统、实时操作系统、智能卡操作系统。

1.5 操作系统概念

操作系统中有很多基本概念和抽象,它们是需要理解的核心内容,主要有:进程、地址空间、文件、I/O(输入输出)、保护、shell.

1.5.1 进程

**进程:进程的本质是正在执行的一个程序。可以简单理解一个进程就是一个程序,但有时,一个程序包含多个进程。**进程是容纳运行一个程序所需要所有信息的容器。
与每一个进程相关的是地址空间,在这个地址空间中,进程可以读写,该地址空间中存放有可执行程序、程序的数据以及程序的堆栈。

与进程相关的还有资源集,通常包含:寄存器(程序计数器和堆栈指针)、打开文件的清单、突出的警报、有关进程的清单以及程序需要的其他信息。

在许多操作系统中,与一个进程有关的所有信息,除了该进程自身地址空间的内容以外,均存放在操作系统的一张表中,称为进程表,进程表是数据或链表结构,当前存在的每个进程都要占用其中一项。
一个(挂起的 )进程:进程的地址空间以及对应的进程表项。

1.5.2 地址空间

地址空间(Address Space)是指在计算机系统中,每个进程可用的内存地址的范围或集合。在操作系统中,每个进程都有其自己的地址空间,这个地址空间是分配给进程使用的内存空间。

1.5.3 文件

文件这个概念的抽象是为了描述数据的集合,这个比较好理解。

1.5.4 I/O(输入输出)

主要是指输入输出设备,通过这些设备来输入或输出数据, 比如键盘、打印机等。键盘输入字母,就可以在硬盘或者其他位置输出文字。

1.5.5 保护

计算机有大量信息,用户希望对其进行保护。对一个文件来说,通常有三种状态,可读(只能读取,不可修改),可写(只能写入,不可读出),可读可写。

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

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

相关文章

华为孟晚舟:拥抱5G变革

2023 MWC上海开幕,华为副董事长、轮值董事长、CFO孟晚舟在大会上发表了“拥抱5G变革”的主题演讲。她表示:全球5G商用4年来,正持续引领价值创造,而5.5G是5G网络演进的必然之路;面向未来,科技走向复杂大系统…

突破未来:SAP助力新能源产业腾飞!

新能源行业概况 在互联网的时代浪潮下,多数行业都开始进行了调整与整合,竞争无处不在。作为新兴的新能源行业,如果不想从竞争中被淘汰,就需要把握时代的脉搏,找到突破口,带领企业在市场竞争中越走越远。我…

学习:PSM倾向得分匹配基于stata实现

PSM倾向性匹配得分 定义 就是一个用户属于实验组的倾向性,也就是在特定特征的情况下属于实验组的概率(条件概率) 其他定义: PSM 通过统计学模型计算每个观测的每个协变量的综合倾向性得分,再按照倾向性得分是否接近进⾏匹配。 用直白的话来…

大数据技术——电影推荐系统大数据综合实训项目

具体文档请参考如下链接: https://download.csdn.net/download/qq_53142796/87949491https://download.csdn.net/download/qq_53142796/87949491 https://download.csdn.net/download/qq_53142796/87949489https://download.csdn.net/download/qq_53142796/879494…

2.设计模式之前5种设计模式单例工厂原型建造者适配器

1.怎么掌握设计模式? 独孤5剑 先是锋利的剑 后面是无剑才是最强的 ,GOF四人组写的<设计模式>书,包含了23种,实际可能还有其他,不要被束缚(只是覆盖了大部分).设计模式适合的人群: 1.不知道设计模式 2.有编程经验,但是写的好多代码有设计模式却不知道 3.学习过设计模式,发…

Unity 提取并拷贝Hierarchy路径

提取并拷贝Hierarchy路径 &#x1f354;效果&#x1f96a;食用 &#x1f354;效果 &#x1f96a;食用 &#x1f4a1;.导入包后直接选中GameObject右键选择&#xff1a;复制Hierarchy路径 &#x1f4a1;.快捷键Ctrl V 即可粘贴路径

SurfaceFlinge/InputFlinger分析-android画面缩放后依然点击正常原理分析

hi&#xff0c;粉丝朋友们&#xff1a; 这两天刚好在做自由窗口相关国内需求&#xff0c;刚好遇到一个疑惑&#xff0c;那就是画面进行缩放后发现依然触摸画面可以正常反映问题。 具体疑惑背景 疑问点如下&#xff1a; 坐标是针对屏幕的&#xff0c;按钮也是相对Activity的&…

【SPI】STM32 SPI 双机通信,SPI从机模式使用

文章目录 一、SPI主机配置二、SPI从机配置三、双机通信1 轮询中断&#xff08;低速&#xff09;2 轮询DMA&#xff08;低速&#xff09;3 DMADMA&#xff08;高速&#xff09;4 开启CRC校验&#xff08;自选&#xff09; 四、遇到的问题1 高速使用时&#xff0c;程序卡死&#…

JavaScript 原型与原型链

所有的 JavaScript 对象都会从一个 prototype&#xff08;原型对象&#xff09;中继承属性和方法&#xff1a; Date 对象从 Date.prototype 继承。 Array 对象从 Array.prototype 继承。 所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。 JavaScript 对象有一个指…

【C#】代码解析--打印数据集

系列文章 【C#】编号生成器&#xff08;定义单号规则、固定字符、流水号、业务单号&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器&#xff08;开始日期、结束日期&#xff09; 本文链接&#xff1a;h…

LangChain:LLM应用程序开发(中)——文档问答、评估、Agents(代理)

文章目录 四、文档问答4.1 快速入门4.2 逐步实现4.3 其它方法 五、评估5.1 创建QA app5.2 生成测试数据点5.2.1 Hard-coded examples5.2.2 LLM-Generated examples 5.3 link chain debug手动评估5.4 LLM assisted evaluation5.5 LangChain Evaluation platform 六、Agents&…

704.二分查找

一、题目 二、代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int search(int* nums, int numsSize, int target) {int left 0;int right numsSize - 1;while (left < right) {int middle (left right) / 2;if (target > nums[middle]) {left m…

pip3 报错 distribution was not found and is required by the application

环境&#xff1a; centos 8 &#xff0c; pyhton3.6 背景&#xff1a; 升级python3.6 至 python3.10后&#xff0c; pip3安装包报错&#xff1a; pkg_resources.VersionConflict: (pip 21.2.4 (/usr/local/python3/lib/python3.10/site-packages), Requirement.parse(pip23.…

Linux:scp命令

1.介绍 scp命令是cp命令的升级版&#xff0c;即&#xff1a;ssh cp&#xff0c;通过SSH协议完成文件的复制。其主要的功能就是&#xff1a;在不同的Linux服务器之间&#xff0c;通过SSH协议互相传输文件。只要知晓服务器的账户和密码&#xff08;或密钥&#xff09;&#xff0c…

美光之后,韩国存储芯片也将成为输家,将损失千亿美元

美光很可能将完全丧失中国的企业市场&#xff0c;随着影响的扩大&#xff0c;韩国存储芯片或也将因美光的影响而蒙受巨大的损失&#xff0c;预计损失最高可能达到千亿美元&#xff0c;韩国存储芯片的老大地位也将因此动摇。 美光日前对媒体披露的数据指出因中国的安全审查&…

GitHub下的项目有pom.xml但右侧没有Maven问题

1.可以使用idea自带功能将pom.xml作为Maven导入 双击shift&#xff0c;输入Maven点击Add Maven Projects注意&#xff1a;在settings中将Maven先配置好&#xff0c;我使用的是自己设置的Maven仓库而不是idea自动部署在C盘的仓库

SQL Server数据库 -- 表的创建与管理

文章目录 一、数据表的组成二、创建数据表 表的创建表的查看表的增加表的修改表的删除、三、表的架构操作四、总结 前言 上次博客写到了数据库的创建与管理&#xff0c;但是创建的库里面什么东西都没有&#xff0c;现在我们需要在库里面添加数据表内容 一、数据表的组成 在创…

美好未来“一束光”儿童安全教育项目在四川泸定正式启动

6月26日&#xff0c;由中华少年儿童慈善救助基金会和北京臻爱公益基金会共同发起的美好未来计划“一束光”儿童安全教育公益项目启动仪式&#xff0c;在四川省甘孜藏族自治州泸定县贡嘎山片区寄宿制学校举行。 出席本次启动仪式活动的嘉宾有&#xff1a;中华少年儿童慈善救助基…

基于“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI指数的生态质量评价及拓展应用

目录 ​第一章 生态环境脆弱性评价内涵及基于文献可视化方法研究热点分析 第二章 数据来源及预处理 第三章 生态环境脆弱性评价模型构建 第四章 生态环境脆弱性时空格局演变分析 第五章 生态环境脆弱性时空格局演变驱动机制分析 第六章 基于 RSEI 指数的生态质量评价 第…

js输入一个字符串,打印出该字符串中,所有字符的排列组合(超清晰)

一、题目 输入一个字符串&#xff0c;打印出该字符串中&#xff0c;所有字符的排列组合。 输入&#xff1a;abc 输出&#xff1a;[abc, acb, bca, bac, cab, cba] 二、思路 回溯算法。其核心思想是通过递归的方式进行深度优先搜索&#xff0c;当发现当前的选择不符合要求时…