操作系统清华同步笔记:定义概述+计算机内存和硬盘布局+启动流程顺序+中断、异常和系统调用

定义概述

  • 从用户角度来看,操作系统是一个控制软件,用以管理应用程序,为应用程序提供服务,杀死应用程序等。
  • 从内部文件角度来看,操作系统是一个资源管理器,用以管理外设,分配资源。
  • 层次结构:操作系统位于硬件之上,应用程序之下,算是一个中间层。
  • 如图,操作系统将以下的三个概念,抽象为上方的三个概念。

  • 操作系统的特征:
    • 1、并发:计算机系统中同时存在多个运行的程序需要操作系统管理和调度。(注意区分并发和并行,并行要求多个CPU同时运行,而并发只是要求多个程序可以同时运行)
    •  2、共享 :表面上是同时访问资源。实际上是在一个时间点上只有一个程序可以访问某一处资源。
    • 3、虚拟:硬件虚拟化,让用户觉得只有一个计算机专门为他服务。
    • 4、异步:程序的执行推进的速度不可预知。但是如果运行环境完全相同,那么操作系统给可以保证程序运行的结果也会相同。

启动

计算机内存和硬盘布局

一个最简单的计算机起码应该有:cpu、disk、内存、总线。

  1. disk:硬盘,存放OS(即操作系统)和bootloader(一般位于硬盘的第一个扇区)。
  2. bootloader:把OS的操作和数据从硬盘加载到内存里面去。
  3. BIOS:基本I/O处理系统,功能为寻找显卡和执行BIOS。一般都处于固定的地址,开始地址为CS:0xf000,末地址为IP:fff0。(CS又称为段寄存器。IP又称为指令寄存器。)

启动流程:

插电后,BIOS首先进行自检,寻找显卡,检查外设是否存在问题。然后将bootloader从硬盘加载到内存上去。此时cpu的控制权转移到bootloader手上。随后bootloader把OS的操作和数据从硬盘加载到内存里面去,cpu的控制权转给os。

中断、异常和系统调用

  1. 系统调用(来源于应用程序) 
    1. 异步/同步。(系统调用的发出请求时是同步的,返回响应时是异步的)
    2. 应用程序主动向操作系统发出服务请求。
    3. 响应:等待和持续。
  2. 异常(来源于不良的应用程序)       
    1. 同步          
    2. 操作系统被迫去处理非法指令或情况(如:内存出错)
    3. 响应:杀死或重新执行意想不到的应用程序指令
  3. 中断(来源于外设)             
    1. 异步   
    2. 来自不同的硬件设备的计时器和网络的中断
    3. 响应:持续,对用户是透明的。

异步:就是不知道什么时候会产生。同步:明确知道什么时候/情况下产生的。

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

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

相关文章

命令行编译VS工程

先输入以下命令,因为命令出错了,就会弹出帮助,如下: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" /help 反正就是Microsoft Visual Studio 的安装路径。 帮助界面如下&#xff1a…

Selenium如何用于编写自动化测试脚本?

Selenium如何用于编写自动化测试脚本?它提供了许多测试工具和API,可以与浏览器交互,模拟用户操作,检查网页的各个方面。下面是一些步骤,可以帮助你编写Selenium自动化测试脚本。 1、安装Selenium库和浏览器驱动程序 首…

core dump管理在linux中的前世今生

目录 一、什么是core dump? 二、coredump是怎么来的? 三、怎么限制coredump文件的产生? ulimit 半永久限制 永久限制 四、从源码分析如何对coredump文件的名字和路径管理 命名 管理 一些问题的答案 1、为什么新的ubuntu不能产生c…

java设计模式---策略模式

策略模式的定义 策略设计模式是一种行为设计模式。当在处理一个业务时,有多种处理方式,并且需要再运行时决定使哪一种具体实现时,就会使用策略模式。 策略模式的类图: 策略模式的实现 在支付业务中,有三种付款方式&…

RabbitMQ工作模式-工作队列

官网关于工作模式的解释地址:https://www.rabbitmq.com/getstarted.html Work Queue(工作队列) 生产者发消息,启动多个消费者来消费消息,每个消费者仅消费部分消息,可达到负载均衡的效果。 创建生产者 i…

使用docker、docker-compose部署微服务

使用docker、docker-compose部署微服务 一、使用docker部署1、准备2、上传jar包3、编写dockerfile文件3、构建镜像和容器 二、使用docker-compose部署1、准备服务的jar包和dockerfile文件2、编写docker-compose.yml文件3、docker-compose常用命令(1)、前…

Linux用户与组管理(01)(六)

目录 前言 一、用户管理 1、 概述 2、用户操作 总结 前言 今天学习的是新知识,Linux用户与组管理,刚开始就是简单的一些概念、命令等,今天学习的内容也都是重点哦!希望我们可以一起学习,共同发展和进步。 提示&#x…

linux 发行版中在容器内访问热插拔 U 盘的分区内容

前言 在 UOS 如何实现自动将 U 盘挂载到指定目录中?这篇文章中,我描述了 UOS 自动挂载 U 盘到指定目录的方式,现有的发行版处理逻辑大致相同。 当挂载位置确定后,容器内的业务逻辑要访问 U 盘分区中的内容,看上去只需…

【Linux】以太网协议以及MTU

以太网协议 数据链路层的功能以太网的数据格式MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对TCP协议的影响 数据链路层的功能 数据链路层的主要功能是:控制链路。包括数据链路的建立、链路的维护和释放。MAC寻址也是它的功能,寻址是指计算机网卡的MAC地…

二分图-染色法-dfs

1.判断一个图是否是二分图当且仅当图中不包含奇数环 2. dfs当前边为1 他的临边为2 看是否满足条件 3. 注意图有可能不是连通图 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays;public class BinaryG…

无涯教程-JavaScript - CUBERANKEDMEMBER函数

描述 CUBERANKEDMEMBER函数返回集合中的第n个或排序的成员。 使用此功能可返回一组中的一个或多个元素,如销售业绩最好的人或前十名的学生。 语法 CUBERANKEDMEMBER (connection, set_expression, rank, [caption])争论 Argument描述Required/OptionalconnectionThe name …

vscode搭建springboot开发环境

前言 idea好用到但是收money,eclipse免费但是界面有点丑,所以尝试使用vscode开发springboot 提前准备 安装jdk,jdk需要大于11 安装vscode 安装maven 安装插件 主要是下面的插件 Extension Pack for JavaSpring Boot Extension PackDepe…

【Java 基础篇】Java 数组使用详解:从零基础到数组专家

如果你正在学习编程,那么数组是一个不可或缺的重要概念。数组是一种数据结构,用于存储一组相同类型的数据。在 Java 编程中,数组扮演着非常重要的角色,可以帮助你组织、访问和操作数据。在本篇博客中,我们将从零基础开…

前端高性能渲染 — 虚拟列表

虚拟列表,实际上就是在首屏加载的时候,只加载可视区域内需要的列表项,当滚动发生时,动态通过计算获得可视区域内的列表项,并将非可视区域内存在的列表项删除。该技术是解决渲染大量数据的一种解决方法。 实现虚拟列表&…

编译Micropython固件For树莓派Raspberry Pi Pico

1. 前言 由于想把自己编写的py文件打包的固件中,所以记录下如何编译micropython固件和打包。 2. 编译 最简单的方式就是在你的树莓派上进行,我用的是RP Pi2 下载所需文件: $ cd ~/ $ mkdir pico $ cd pico $ git clone -b pico https://gi…

THIRD PROGRAMMING CONTEST 2023 ALGO(AtCoder Beginner Contest 318)

THIRD PROGRAMMING CONTEST 2023 ALGO&#xff08;AtCoder Beginner Contest 318&#xff09; A - Full Moon 思路&#xff1a;模拟 直接模拟即可&#xff0c;找到以m开始每一次可以调p的距离终点为n的次数 #include<bits/stdc.h> using namespace std; int main(){in…

python 美国总统身高统计与分析

美国总统身高统计与分析 1.安装依赖2.下载数据集3.数据处理4.结果展示 1.安装依赖 pip install pandas pip install numpy pip install matplotlib2.下载数据集 链接&#xff1a;https://pan.baidu.com/s/1aZLtkLyvQvRLb9tJ-B1krA 提取码&#xff1a;thms –来自百度网盘超级…

Nginx安装与部署

文章目录 一,说明二,下载三,Windows下安装1,安装2,启动3,验证 四,Linux下安装1,安装2,启动3,验证 五,Nginx配置 一,说明 Nginx是一款高性能Web和反向代理服务器,提供内存少,高并发,负载均衡和反向代理服务,支持windos和linux系统 二,下载 打开浏览器,输入地址: https://ngin…

Go语言中的Panic和高阶Func详细教程案例

目录标题 一、Panic1. What is Panic?2. What should panic be used?3. Example4. Defer Calls During a Panic 延迟panic5. Recovering from a Panic 关联6. Getting Stack Trace after Recover 输出堆栈信息7. Panic, Recover and Goroutines 二、First Class Functions1. …

【数据库】MySQL基础知识全解

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于拓跋阿秀、小林coding等大佬博客进行的&#xff0c;每个知识点的修…