1629_MIT_6.828_xv6_chapter1操作系统的组织

news2024/9/29 19:26:41

         全部学习汇总:GreyZhang/g_unix: some basic learning about unix operating system. (github.com)

         这一次整理一下操作系统组织相关的知识,主要还是xv6教学操作系统相关的知识。当然,很多知识在这类技术领域是通用的。

1. 操作系统的主要功能在上一个章节中其实是已经总结出来了,这里算是再次说明:硬件的抽象以及复用、进程之间的隔离、进程之间的交互。

2. 这里从另一个方面介绍了RTOS的设计实现,恰恰可以让人感受到其实xv6是一个非实时性的操作系统。

1. exec的调用是创建分配进程存储空间的方式。

2. 隔离设计的实现其实是需要依赖于硬件功能的,这里依赖的硬件功能主要是存储映射,实现虚拟地址与物理地址之间的映射转换。

1. 错误权限下的访问会导致失败,之后OS会对这个异常的进程进行清理。

2. 内核是在内核空间中运行的软件,在SV的权限下执行。

3. 宏内核的整个操作系统都在内核空间内。

4. 宏内核的两个优点:第一,设计的过程中无需考虑各种权限的设计;第二,内核之间的接口依赖实现较为简单。

5. 宏内核很大的一个缺点:内核的错误可能会导致整个系统的重启。

6. 微内核设计中,操作系统的很多功能是在用户层设计的,这样的内核简单。

1. vx6是宏内核,大部分的UNIX都是。我疑问Linux是什么,其实在后面的内容中明确说了是宏内核。宏内核的系统,在内核中实现了所有操作系统的功能。

2. 从进程的角度看,进程可以理解为自己是独占了整个计算机硬件的。至少从设计时候的逻辑存储角度考虑是如此。

3. 这里提到的页表是一个很重要的功能,它主要实现了虚拟地址到物理地址的转换。

1. 这里的这个图给出来了一个进程角度能够看到的存储的分布。

2. 进程有一个叫做proc的结构体存储了进程相关的信息。每一个进程有两个堆栈,用户的以及内核的。其实,正是由于这种内核堆栈的存在,可以让内核管理下的硬件能够实现高度复用。

1. 这里给出了进程可能的几种状态:已经分配、就绪可以运行、运行中、等待中、退出中。

2. 页表信息也记录了进程分配的实际的物理地址信息。

3. 为什么运行的地址选择了0x100000,其实是为了避开跟硬件的冲突。我把这个跟之前做测试的时候看到的一个问题弄混了,两个地址其实是相差了16倍。下面是我之前产生疑惑的代码的部分:

1. 关于内核的启动过程,后面还得结合代码以及调试追踪环境来逐步理解一下。

2. 这里看到了另一个说明点,那就是进程的PID分配。这个分配其实是在allocproc调用的时候分配出来的。

1. 这里看到一个比较有意思的地方,最早执行的一段代码居然是一段汇编程序。

2. 这部分的内容涉及到了太多的其他章节的知识,读的时候也有点迷糊,后面不行再回读一下。

         操作系统提供的进程隔离主要是通过了独立的进程堆栈空间以及存储映射技术来实现的,自然,堆栈空间其实还是可以继续细分为两种的。

         很多UNIX系统是宏内核,这里明确说明了Linux其实也是宏内核。不过,QNX是一个微内核。

         这样,这个章节的内容算是简单看了一下,接触到了一些全新的知识,但是理解不是很深刻。

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

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

相关文章

SAP ABAP Odata

GetEntity和GetEntitys GetEntitys 创建Odata Project 导入结构 选择需要的字段 设定Key 勾选字段的creatable、updatable、sortable、nullable、filterable属性值。 再依上述步骤创建ZPOITEM结构和实体集 3. 创建ZPOHEADER和ZPOITEM的Association 两个实体集的关联字段&…

RocketMQ-消息消费模式 顺序消费

RocketMQ-消息消费模式 顺序消费RocketMQ-消息消费模式集群模式集群模式的演示(本身就默认)Rocketmq存储队列广播模式顺序消费如何改实现顺序消费RocketMQ-消息消费模式 集群模式 在消费模式为集群的情况下,如果机器是集群的,消息只会给集群中的其中一台机器消费到 集群模…

【数据结构】双向链表的模拟实现(无头)

目录 前言: 1、认识双向链表中的结点 2、认识并创建无头双向链表 3、实现双向链表当中的一些方法 3.1、遍历输出方法(display) 3.2、得到链表的长度(size) 3.3、查找关键字key是否包含在双链表中(contains) 3.…

基于I2S通讯MAX98357模块的JetsonNano声音外放

前言有很多方法可以为 Jetson 设备添加音频功能。USB 扬声器和USB 麦克风是一种简单的解决方案,但它们确实占用了宝贵的 USB 插槽,这些插槽可能更适合用于键盘、蓝牙功能、Internet Keys 和其他配件。在 Jetson 设备上,NVIDIA 通过 40 针 GPI…

微软发布会精华回顾:“台式电脑”抢了风头

Lightbot北京时间2016年10月26日晚10点,微软在纽约发布了名为 Surface Studio 的一体机、名为 Surface Dial 的配件以及外观未变的顶配版 Surface Book。同时,微软宣布了 Windows 10 下一个重要版本——“Creators Update”的数项新功能,包括…

【Linux】冯诺依曼体系结构和操作系统概念

文章目录🎪 冯诺依曼体系结构🚀1.体系概述🚀2.CPU和内存的数据交换🚀3.体系结构中数据的流动🎪 操作系统概念理解🚀1.简述🚀2.设计目的🚀3.定位🚀4.理解🚀5.管…

AOP面向切面编程思想。

目录 一、AOP工作流程 1、基本概念 2、AOP工作流程 二、AOP核心配置 1、AOP切入点表达式 2、AOP通知类型 三、AOP通知获取数据 1、获取参数 2、获取返回值 3、获取异常 四、AOP事务管理 1、Spring事务简介 2、Spring事务角色 3、事务属性 一、AOP工作流程 1、…

Linux内核启动(理论,0.11版本)分段与分页

为什么要虚拟内存 我们知道,在之前上微机原理时,我们的程序是可以直接访问内存的,而且访问的是直接的物理内存,在实模式下,寄存器是16位的,数组总线(data bus)是16位的,…

设计模式-值类型与引用类型、深拷贝与浅拷贝、原型模式详解

一. 值类型和引用类型 1. 前言 (1). 分类 值类型包括:布尔类型、浮点类型(float、double、decimal、byte)、字符类型(char)、整型(int、long、short等)、枚举(entum)、结构体(struct)。 引用类型:数组、字符串(string)、类、接口…

DamiCMS SQL注入分析

2023年将会持续于B站、CSDN等各大平台更新,可加入粉丝群与博主交流:838681355,为了老板大G共同努力。 一、入口文件(单入口文件模式) 看一下Index.php文件代码:引入了php_safe.php文件 查看一下php_safe.php防御文件: 对变量e…

2019_41 考研408

2019年(单链表)41.(13分)设线性表采用带头结点的单链表保存,链表中的结点定义如下:typedef struct node {int data;struct node* next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L(q,a,,a,an…

【正则表达式】获取html代码文本内所有<script>标签内容

文章目录一. 背景二. 思路与过程1. 正则表达式中需要限定<script>开头与结尾2. 增加标签格式的限定3. 不限制<script>首尾的内部内容4. 中间的内容不能出现闭合的情况三. 结果与代码四. 正则辅助工具一. 背景 之前要对学生提交的html代码进行检查&#xff0c;在获…

牛客小白月赛66

牛客小白月赛66_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)冒着期末挂科的风险打了打&#xff0c;缓解了一下网瘾&#xff0c;感觉还行最近为了期末鸽了很多期的div3&#xff0c;一学期末就手痒想训&#xff0c;感觉再不打人要没了&#xff0c;结果…

linux性能优化-内存回收

linux文件页、脏页、匿名页 缓存和缓冲区&#xff0c;就属于可回收内存。它们在内存管理中&#xff0c;通常被叫做文件页&#xff08;File-backed Page&#xff09;。通过内存映射获取的文件映射页&#xff0c;也是一种常见的文件页。它也可以被释放掉&#xff0c;下次再访问的…

DOM编程-显示网页时钟

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>显示网页时钟</title> </head> <body bgcolor"antiquewhite"> <script type"text/javascrip…

剑指offer(中等)

目录 二维数组中的查找 重建二叉树 矩阵中的路径 剪绳子 剪绳子② 数值的整数次方 表示数值的字符串 树的子结构 栈的压入、弹出序列 从上到下打印二叉树① 从上到下打印二叉树③ 二叉搜索树的后序遍历序列 二叉树中和为某一值的路径 复杂链表的复制 二叉搜索树与…

C++复习笔记8

泛型编程&#xff1a;编写的是与类型无关的通用代码&#xff0c;是代码复用的一种手段&#xff0c;模板是泛型编程的基础。 1.函数模板&#xff1a;类型参数化&#xff0c;增加代码复用性。例如对于swap函数&#xff0c;不同类型之间进行交换都需要进行重载&#xff0c;但是函数…

K_A12_003 基于STM32等单片机采集光敏二极管模块参数 串口与OLED0.96双显示

K_A12_003 基于STM32等单片机采集光敏二极管模块参数 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RC光敏二极管模块1.2、STM32F103C8T6光敏二极管模块五、基础知识…

面向 3DoF+的虚拟视图合成算法研究(陈 莹)

面向 3DoF的虚拟视图合成算法研究&#xff08;陈 莹&#xff09;论文贡献多视点联合的虚拟视图合成算法视图合成中多视点伪影消除算法面向虚拟视图合成算法的 3DoF系统基于深度的虚拟视图合成算法视点映射&#xff08;3D-Warping&#xff09;三维空间映射变换&#xff08;3D-Wa…

TYPE-C 手机/电脑同时充电直播 视频采集卡方案

Type-C音视频采集卡有什么作用&#xff1f; ​能够帮助专业用户和游戏玩家迅速搭建简单、高性价比的音视频解决方案。可将新闻联播、体育竞赛、视频教学课程、网络视频等&#xff0c;通过HDMI高清视频信号分段或整体录制在本地计算机共享使用。支持多种带HDMI接口的游戏机设备…