首页 > 其他分享 >操作系统实验学习进度

操作系统实验学习进度

时间:2024-08-12 15:16:49浏览次数:10  
标签:操作系统 控制流 内存 应用程序 实验 进度 执行 处理器

最近开始学习操作系统和机组的相关知识, 写一个学习进度的笔记作为鞭策, 其中的dayn不一定全是一天内完成的, 同时,大部分文字来源于学习资料rCore-Tutorial-Book 第三版。

Day0 - 入门

操作系统初步介绍

1.定义

  • 一个操作系统(OS)是一个软件,它帮助用户和应用程序使用和管理计算机的资源。现在的通用操作系统是一个复杂的系统软件。

系统软件是为计算机系统提供基本功能,并在计算机系统范围内使用的软件,其作用可涉及到整个计算机系统。

系统软件包括操作系统内核、驱动程序、工具软件、用户界面、软件库等。

  • 从应用的角度:

    在应用运行时, 执行环境提供了运行应用软件所需的运行时服务,包括内存管理、文件系统访问、网络连接等,这些服务大部分是由操作系统来提供的。

    为应用提供他所需要的功能, 同时也负责调动硬件去实现应用想要的效果

    可以把操作系统的定义简化为: 应用程序的软件执行环境

    ../_images/EE.png

可以总结为操作系统的主要功能有二: 一是向下管理并控制计算机硬件和各种外设,二是向上管理应用软件并提供各种服务。

2.组成

操作系统的主要组成包括:

  1. 操作系统内核:操作系统的核心部分,负责控制计算机的硬件资源并为用户和应用程序提供服务。
  2. 系统工具和软件库:为操作系统提供基本功能的软件,包括工具软件和系统软件库等。
  3. 用户接口:是操作系统的外壳,是用户与操作系统交互的方式。用户接口包括图形用户界面(GUI)和命令行界面(CLI)等。

3.操作系统内核

  1. 进程/线程管理:内核负责管理系统中的进程或线程,创建、销毁、调度和切换进程或线程。
  2. 内存管理:内核负责管理系统的内存,分配和回收内存空间,并保证进程之间的内存隔离。
  3. 文件系统:内核提供文件系统接口,负责管理存储设备上的文件和目录,并允许应用访问文件系统。
  4. 网络通信:内核提供网络通信接口,负责管理网络连接并允许应用进行网络通信。
  5. 设备驱动:内核提供设备驱动接口,负责管理硬件设备并允许应用和内核其他部分访问设备。
  6. 同步互斥:内核负责协调多个进程或线程之间对共享资源的访问。同步功能主要用于解决进程或线程之间的协作问题,互斥功能主要用于解决进程或线程之间的竞争问题。
  7. 系统调用接口:内核提供给应用程序访问系统服务的入口,应用程序通过系统调用接口调用操作系统提供的服务,如文件系统、网络通信、进程管理等。

3.历史:略, 可以查看原文

4.操作系统调用接口

  • API与ABI:

    • API 的全称为“应用程序编程接口”,它是程序员可以通过编程语言调用的一种特殊资源。通过遵循 API 规范,我们可以在相应的编程语言代码中使用这些接口,以操作计算机系统来完成某项特定任务.

      API 有着多种具体表现形式,比如源代码形式的函数,或是基于互联网的 Web 接口。

      API 具有的一个最重要特征,便是隐藏了其背后具体功能的内部实现细节,只公开对编码有意义的部分

    • ABI 的全称为“应用程序二进制接口”,它是一套描述了应用程序应该如何在机器指令层面与特定操作系统和硬件平台正常协作的一系列规范。这些规范决定了应用程序应该如何进行数据访问、函数调用,乃至使用操作系统的能力。

      不遵循 ABI 规范的应用程序也许可以运行,但它却可能会失去在同一个体系下的兼容性以及运行正确性。

5.执行环境

执行环境 是一个内涵很丰富且有一定变化的术语,它主要负责给在其上执行的软件提供相应的功能与资源,并可在计算机系统中形成多层次的执行环境。

  • 执行环境自初始阶段的计算机硬件逐步发展为函数库* -> *Java 虚拟机* -> *操作系统内核* -> *Hypervisor/VMM* -> 计算机硬件

  • CPU在执行过程中,可以在不同层次的执行环境之间切换,这称为 执行环境切换 。执行环境切换主要是通过特定的 API 或 ABI 来完成的,这样不同执行环境的软件就能实现数据交换与互操作,而且还保证了彼此之间有清晰的隔离。

    对于应用程序的执行环境而言,应用程序只能看到执行环境直接提供给它的接口(API 或 ABI),这使得应用程序所能得到的服务取决于执行环境提供给它的访问接口。

6.控制流

程序的控制流是指以一个程序的指令、语句或基本块为单位的执行序列

  • 普通控制流: 控制流是程序员编写的程序的执行序列,这些序列是程序员预设好的。程序运行时能以多种简单的控制流(顺序、分支、循环结构和多层嵌套函数调用)组合的方式,来一行一行的执行源代码(以编程语言级的视角),也是一条一条的执行汇编指令(以汇编语言级的视角)。

  • 异常控制流: 应用程序在执行过程中,如果发出系统调用请求,或出现外设中断、CPU 异常等情况,处理器执行的前一条指令和后一条指令将会位于两个完全不同的位置,即不同的执行环境 。

    比如,前一条指令还在应用程序的代码段中,后一条指令就跑到操作系统的代码段中去了,这就是一种控制流的“突变”,即控制流脱离了其所在的执行环境,并产生 执行环境的切换。 我们把这种“突变”的控制流称为 异常控制流

  • 控制流的上下文是指仅会影响控制流正确执行的有限的物理/虚拟资源内容

    控制流在执行完某指令时的资源内容,即确保下一时刻能继续 正确 执行控制流指令的物理资源内容称为控制流的 上下文 (Context) ,也可称为控制流所在执行环境的状态。

    • 物理资源:即计算机硬件资源,如CPU的寄存器、可访问的物理内存等。
    • 虚拟资源:即操作系统提供的资源,如文件,网络端口号,网络地址,信号等。
  • 如果出现了处理器在执行过程中的突变(即异常控制流)或转移(如多层函数调用),需要由维持执行环境的软硬件协同起来,保存发生突变或转移前的控制流上下文,即当前执行环境的状态,并在完成突变处理或被调用函数执行完毕后,恢复突变或转移前的控制流上下文。

  • 在操作系统中,需要处理三类异常控制流:外设中断 (Device Interrupt) 、陷入 (Trap) 和异常 (Exception,也称Fault Interrupt)。

    下面附三张图片:

    1.中断:外设 中断 (Interrupt) 是指由外部设备引起的外部 I/O 事件。外设中断是异步产生的,与处理器的执行无关。产生中断后,操作系统需要进行中断处理来响应中断请求,这会破坏被打断前应用程序的控制流上下文,所以操作系统要保存与恢复被打断前应用程序的控制流上下文。

    ../_images/interrupt.png

    2.异常:异常 (Exception) 是在处理器执行指令期间检测到不正常的或非法的内部事件(如 x86 平台上的除零错、地址访问越界)。产生异常后,操作系统需要进行异常处理,这会破坏被打断前应用程序的控制流上下文,所以操作系统要保存与恢复被打断前应用程序的控制流上下文。

    ../_images/exception.png

    3.陷入: 陷入 (Trap) 是程序在执行过程中由于要通过系统调用请求操作系统服务而有意引发的事件。产生陷入后,操作系统需要执行系统调用服务来响应系统调用请求,这会破坏陷入前应用程序的控制流上下文,所以操作系统要保存与恢复陷入前应用程序的控制流上下文。../_images/syscall.png

7.进程

站在应用程序自身的角度来看,进程 (Process) 的一个经典定义是一个正在运行的程序实例。

进一步, 可以详细地说: 一个进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。操作系统中的进程管理需要采用某种调度策略将处理器资源分配给程序并在适当的时候回收,并且要尽可能充分利用处理器的硬件资源。

当程序运行在操作系统中的时候,程序自认为即该程序是整个计算机系统中当前运行的唯一的程序,能够独占使用处理器、内存和外设,而且程序中的代码和数据是系统内存中唯一的对象。

  • 处理器是计算机系统中的硬件资源。为了提高处理器的利用率,操作系统需要让处理器足够忙,即让不同的程序轮流占用处理器来运行。

    如果一个程序因某个事件而不能运行下去时,就通过进程上下文切换把处理器占用权转交给另一个可运行程序。进程上下文切换如下图所示:../_images/context-switch.png

8.地址空间

地址空间 (Address Space) 是对物理内存的虚拟化和抽象,也称虚存 (Virtual Memory)。它就是操作系统通过处理器中的内存管理单元 (MMU, Memory Management Unit) 硬件的支持而给应用程序和用户提供一个大的(可能超过计算机中的物理内存容量)、连续的(连续的地址空间编址)、私有的(其他应用程序无法破坏)的存储空间。

../_images/address-space.png

9.文件

文件 (File) 主要用于对持久存储的抽象,并进一步扩展到为外设的抽象。

具体而言,文件可理解为存放在持久存储介质(比如硬盘、光盘、U盘等)上,方便应用程序和用户读写的数据。

以磁盘为代表的持久存储介质的数据访问单位是一个扇区或一个块,而在内存中的数据访问单位是一个字节或一个字。这就需要操作系统通过文件来屏蔽磁盘与内存差异,尽量以内存的读写方式来处理持久存储的数据。

当处理器需要访问文件中的数据时,可通过操作系统把它们装入内存。文件管理的任务是有效地支持文件的存储、 检索和修改等操作。

10.开发环境配置

安装rust相关软件

![ECEE257F8BFAC470DDD61A91EC381A92](D:\ZHESHUI\学习\Computer Architecture\img\ECEE257F8BFAC470DDD61A91EC381A92.png)

安装QEMU

![432B04E45820F40A523C0EDD03F4E627](D:\ZHESHUI\学习\Computer Architecture\img\432B04E45820F40A523C0EDD03F4E627.png)

运行rCore-Tutorial

![2E8B21C3C09CF83DB32F27329DA5CEF9](D:\ZHESHUI\学习\Computer Architecture\img\2E8B21C3C09CF83DB32F27329DA5CEF9.png)

标签:操作系统,控制流,内存,应用程序,实验,进度,执行,处理器
From: https://www.cnblogs.com/Fgociallo/p/18355022

相关文章

  • DBGrid之进度条显示
    https://www.packtpub.com/en-us/product/delphi-cookbook-second-edition-9781785287428/chapter/delphi-basics-1/section/customizing-tdbgrid-ch01lvl1sec11procedureTForm13.DBGrid1DrawColumnCell(Sender:TObject;constRect:TRect;DataCol:Integer;Column:......
  • springboot高校实验室安全管理系统-计算机毕业设计源码73839
    目 录摘要1绪论1.1研究背景1.2 选题意义1.3研究方案1.4论文章节安排2相关技术介绍2.1B/S结构2.2SpringBoot框架2.3Java语言2.4MySQL数据库3系统分析3.1可行性分析3.2 系统功能性分析3.3.非功能性分析3.4 系统用例分析3.5系统......
  • mpls-vpn实验
    实验需求客户X及Y各自有2个站点,现需要通过MPLSVPN实现站点之间的互联,分别对应VPNX和VPNY。互联接口、AS号及IP地址信息如图,客户X站点与PE之间采用OSPF交互路由信息,客户Y站点与PE之间采用BGP交互路由信息。数据规划配置项描述PE1PE2VPN名称VPNXVPNYVPNXVPNYRD100:1200:1100......
  • Realtek 网卡驱动程序是用于操作系统与 Realtek 网络适配器之间的通信软件。这些驱动
    Realtek网卡,特别是用于个人电脑和服务器的网卡,曾经发现过一些安全漏洞。以下是一些常见的Realtek网卡漏洞及其相关信息:CVE-2020-28015:这个漏洞存在于RealtekRTL8188EU驱动程序中,影响了在特定情况下的无线网络连接。攻击者可以利用这个漏洞执行任意代码或引发系统崩溃。......
  • 打开Office(word、excel、ppt)显示操作系统当前的配置不能运行此应用程序最全解决方案
    我以前用过分区助手把office从c盘挪到d盘了,从那以后office就用不了了,然后我就删了(貌似没删干净)。最近由于有使用word的需求,所以我从学校官网找到正版软件的安装包,按照步骤重新卸载电脑中office残留并安装好之后,打开word会提示“操作系统当前的配置不能运行此应用程序”,ppt......
  • 【读书笔记-《30天自制操作系统》-1】Day1~Day2
    顾名思义,本书将制作操作系统的整个过程分成了30天来依次讲解。但其实每一天的内容多少与难度各不相同,也并不是每天就可以学习完书中一天的内容。前面的内容要少一些,也比较基础,因此先把第一天和第二天的内容合并起来整理。1.二进制与CPU作者没有从概念开始讲起,而是开篇就......
  • mpls ldp实验(二)
    实验需求R1、R2、R3和R4之间运行了IGP协议,已经实现了IP层面的互联互通。需求:通过配置MPLS以及LDP,使得192.168.10.0/24网段和192.168.20.0/24网段,可以通过标签交换的方式实现互访组网图实验思路1、基本链路通信以及配置IGP协议(此实验采用的IGP协议是ISIS)2、配置mpls ld......
  • 实验8-1-8 报数:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人
    一、题目要求:报数:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。二、解题思想:解法:1.定义一个很大整形数组,以及一个当前要喊的数字变量(变化范围是1~3)2.给数组中非3位置进行赋值--赋值要喊的数字3.......
  • 公主少爷都爱看的haproxy七层代理详细介绍及常见实验详解
    目录一、负载均衡1.1什么是负载均衡1.2为什么要实验负载均衡1.3四层负载均衡1.4七层负载均衡1.5四层负载均衡和七层负载均衡的对比二、什么是haproxy2.1定义2. 2功能和特点2.3应用场景 2.4haproxy的分类 三、安装及基本配置的信息3.1软件的安装3.2haproxy基本......
  • 主干网络篇 | YOLOv10 更换主干网络之 VanillaNet |《华为方舟实验室最新成果》
    论文地址:https://arxiv.org/pdf/2305.12972.pdf代码地址:https://github.com/huawei-noah/VanillaNet在基础模型的核心是“多样性即不同”,这一哲学在计算机视觉和自然语言处理方面取得了惊人的成功。然而,优化和Transformer模型固有的复杂性带来了挑战,需要转向简洁性的范式......