首页 > 其他分享 >Chap2:操作系统架构

Chap2:操作系统架构

时间:2024-03-28 18:34:04浏览次数:25  
标签:栈区 架构 操作系统 用户 应用程序 内核 进程 Chap2

简述

操作系统支持多进程任务,并且每个进程之前还应当隔离,但又在必要的时候进行交互。
操作系统必须满足的三个要求:多路复用、隔离和交互

抽象系统资源实现隔离

禁止应用程序直接访问敏感的硬件资源,将这些资源抽象为服务,提供接口向应用程序服务。一般来说就是通过系统调用命令来实现的。
在Unix中交互一般是通过文件描述符来实现的。

用户态,核心态和系统调用

对于一个应用程序,操作系统必须保证应用程序不能修改(甚至读取)操作系统的数据结构和指令,以及应用程序不能访问其他进程的内存。
而CPU就提供了三种模式来满足操作系统的隔离性:用户模式、管理模式、机器模式(权限从低到高)。
当应用程序执行指令时,只能在用户空间中进行。当应用程序在管理模式下运行,其将会在内核空间中运行。
CPU会有一个指令用来切换用户模式和管理模式,需要注意的是,对于进入内核的入口点需要进行检查,我们需要对要进入内核操作的函数检测参数的合法性,如果让用户模式下的应用程序决定入口点,可能会导致跳过参数检查

宏内核

将整个操作系统都放在内核运行,操作系统每个部分都可以直接从操作硬件,这样的组织方式叫做宏内核。但当操作系统中的Bug出现时,将导致计算机的崩溃
当将大部分操作系统从管理模式剥离出来,而放在用户模式下进行时,这种内核组织称为微内核

最简单的单机微内核模式广泛采用C/S模式搭建,即用户的应用程序作为客户端,而操作系统在用户层的功能形成一组由多个进程组成的服务器。
当用户程序想要访问文件系统时,会通过内核层(管理模式)向文件系统进程进行通信。

进程

在XV6中隔离的作用就是隔离一个个进程-->防止两个进程之间的互相影响,以及对内核的操作。为了满足隔离,进程对它负责的程序提供了一个私有内存空间以及让应用程序认为自己独享一个CPU。

内存空间

xv6通过页表来实现对进程的地址空间分配。RISC-V将虚拟地址(RISC-V操作的地址)映射到物理地址上(物理内存上的分区)。
由于每个进程会维持一个单独的内存,所以每个进程拥有一个单独的页表。从虚拟地址0开始向高地址依次是指令集,全局变量,栈区,堆区。而虚拟地址的最大范围受到RISC-V(64位指针)、硬件映射关系的限制(只是用低39位)以及xv6只是用38位,导致最大虚拟地址为0x3fffffffff。
并且还预留了trampoline(用户模式和管理模式的切换)和trapframe

内核对进程的保存

内核将进程分割为多个状态片段保存,比如:页表、内核栈区、运行状态

线程

每个进程拥有一个线程来执行当前该进程的指令,类似于pc指针,在cpu对进程进行切换后,前一个进程中的线程可以挂起,然后当cpu切换回来之后可以从当前线程处直接恢复。
进程拥有两个栈区:用户栈区和内核栈区分别对应其在用户态和管理态下的运行。
进程可以通过执行ecall指令进行sys_call然后pc指针指向内核定义的切换入口点,将入口点处的代码返回到当前进程的内核栈中,当sys_call结束后,会切换会用户栈,然后调用sret指令返回用户态

标签:栈区,架构,操作系统,用户,应用程序,内核,进程,Chap2
From: https://www.cnblogs.com/XTG111/p/18085635

相关文章

  • 不同操作系统中通用解决方案,浏览器拉起app或打开本机应用软件原理,前端网页如何打开一
    不同操作系统中通用解决方案,浏览器拉起app或打开本机应用软件原理,前端网页如何打开一个PC本地应用,通过Scheme、JavaScript、第三方库分别实现前端网页打开本地应用。设想一个场景,当我们在浏览一个网页并且需要下载某个资源时,你的电脑可能经常会跳出一个提示框,询问你是否需......
  • 王道操作系统个人向笔记-第一章
    目录操作系统的基本概念操作系统的概念操作系统的功能和目标操作系统的特征操作系统的发展历程手工操作阶段批处理阶段单道批处理系统多道批处理系统分时操作系统实时操作系统操作系统运行环境处理器运行模式中断和异常系统调用操作系统的体系结构操作系统的引导虚拟机操作系统的......
  • 北京理工大学操作系统 实验一 编译Linux内核
    实验一编译Linux内核实验一编译Linux内核一、实验目的二、实验内容三、实验步骤1.安装虚拟机并配置环境实验环境:2.下载并解压Linux内核源码3.配置内核编译选项4.编译并安装内核和模块5.修改GRUB配置四、实验结果及分析五、实验收获与体会Copyright©2024Squar......
  • 支持MacOS苹果操作系统的网卡你用过吗?
    MarvellAQC113以太网控制器支持苹果操作系统(MacOS),进一步扩展搭载了AQC113设备的应用领域。众所周知,苹果操作系统应用生态完善,是业内备受瞩目的巨头级操作系统,其应用领域覆盖了游戏、社交、娱乐、工具,甚至NAS存储、工作站、家用PC及其他嵌入式应用等。MarvellAQC113器件由高性......
  • 知乎:多云架构下大模型训练,如何保障存储稳定性?
    知乎,中文互联网领域领先的问答社区和原创内容平台,2011年1月正式上线,月活跃用户超过1亿。平台的搜索和推荐服务得益于先进的AI算法,数百名算法工程师基于数据平台和机器学习平台进行海量数据处理和算法训练任务。为了提高系统的易用性和灵活性,知乎实施了多云混合部署架构,允......
  • openEuler20.03操作系统上安装部署MogDB2.1.1
    openEuler20.03操作系统上安装部署MogDB2.1.1本文出处:https://www.modb.pro/db/378319openEuler操作系统上安装mogdb:下载openEuler镜像文件:openEuler-20.03-LTS-x86_64-dvd.iso可以到各镜像源网站下载:例如:清华源下载地址:https://mirrors.tuna.tsinghua.edu.cn/openeule......
  • 关于 NVIDIA 全新 Blackwell AI 超级芯片和架构的了解
    英伟达AI和GPU市场的先锋,最近宣布推出其最新的创新产品BlackwellB200GPU,以及更强大的对应产品GB200超级芯片,以及构成Blackwell。此次发布标志着人工智能处理能力的重大飞跃,巩固了NVIDIA在竞争激烈的行业中的影响力地位。BlackwellB200和GB200的推出恰逢对......
  • 深入浅出:探索Hadoop生态系统的核心组件与技术架构
    目录前言HDFSYarnHiveHBaseSpark及SparkStreaming书本与课程推荐关于作者:推荐理由:作者直播推荐:前言进入大数据阶段就意味着 进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。大数据技术的发展并不是偶然的,它的背后是对于成本的考量。集中式数据库或......
  • 银行核心系统应用架构设计最全详述
    我国金融行业信息化建设经过40多年发展,从无到有,从小到大,逐步建立起独立自主、开放创新的科技体系。其中,作为交易中枢的核心系统,通过不断迭代创新,逐步向更加开放、稳定的新一代现代化金融核心系统迈进。伴随着中国金融行业整体发展的现代化,金融核心系统从外部引进到消化吸......
  • Redis高可用之战:主从架构
    ★Redis24篇集合1主从模式介绍在笔者的另外两篇文章《Redis系列:RDB内存快照提供持久化能力》、《Redis稳定性之战:AOF日志支撑数据持久化》中,我们介绍了Redis中的数据持久化技术,包括RDB快照和AOF日志。有了这两个利器,我们再也不用担心机器宕机,数据丢失了。但是持久化技术......