操作系统基础操作

news2024/11/16 11:51:06

操作系统的启动

体系结构概念

CPU、I/O、内存-通过总线连接
在这里插入图片描述
操作系统一开始存放时没有放在内存里,而是当在DISK中,由BIOS提供相应支持

  • DISK:存放OS
  • BIOS:基本I/O处理系统(计算机开机时可以让系统检测各种外设,检测外设后才能检测各种软件并使其执行)

Bootloader:加载OS到内存中

BIOS从一个特定地址开始执行,当电脑通电时,段寄存器CS和指令寄存器IP能确定一个内存地址,如CS:IP=0xf000:fff0,(特定架构下有特定地址,X86下就是这个地址)

计算机通电之后,就会从这个地址开始执行,包括加电自检等,检测完成均正常工作后,会由Bootloader将OS加载到内存中去

POST(加电自检,检查自身设备是否能够正常工作),寻找显卡和执行BIOS(显示器、键盘等是否正常)
步骤

  • 启动过程
    在这里插入图片描述

中断、异常、系统调用

概念

  • 系统调用(来源于应用程序):应用程序主动向操作系统发出服务请求
  • 异常(来源于不良的应用程序):非法指令或其他坏的处理状态(如:内存出错)
  • 中断(来源于外设):来自不同的硬件设备的计时器和网络的中断

三者的区别和特点

在这里插入图片描述

  • 源头
    • 中断:外设(注意不是CPU产生的)
    • 异常:应用程序意想不到的行为(不是应用程序主动想产生的,而是在执行过程中意外产生的使计算机系统不能正常工作的指令,或操作系统截获的越权指令)
    • 系统调用:应用程序请求操作提供服务
  • 处理时间
    • 中断:异步
    • 异常:同步
    • 系统调用:同步(发出请求是同步的)或异步(发出请求后返回的事件是异步的)
  • 相应
    • 中断:持续,对用户应用程序是透明的(打断了程序的正常执行,但是用户感受不到)
    • 异常:杀死或重新执行意想不到的应用程序指令
    • 系统调用:等待和持续

中断和异常的处理过程

中断

  • 硬件:设置中断标记(CPU初始化)
    1. 将内部、外部事件设置中断标记
    2. 中断事件的ID
  • 软件:
    • 保存当前处理状态
    • 中断服务程序处理
    • 清除中断标记
    • 恢复之前保存的处理状态

异常

发出异常后会有异常编号

  • 保存现场
  • 异常处理
    • 杀死产生了异常的程序
    • 重新执行异常指令
  • 恢复现场

系统调用

应用程序需要操作系统提供的服务,而这个服务不能由应用程序直接来执行,必须要有操作系统来执行,这个过程就需要有一个接口,这个接口就是系统调用接口

  • 一些系统调用的API
    • Win32 API用于Windows
    • POSIX API用于POSIX-based systems(包括UNIX、LINUX、Mac OS X的所有版本)
    • Java API用于JAVA虚拟机(JVM)

通常情况下,系统掉有接口根据与每个系统调用相关的序号来维护表的索引
系统调用接口调用内核态中语气的系统调用并返回系统调用的状态和其他任何返回值
用户不需要知道系统调用是如何实现的,是需要获取API和了解操作系统将什么作为返回结果,OS接口的细节大部分都隐藏在API中
在这里插入图片描述
系统调用带来的开销比函数调用带来的开销大,但是也更安全
系统调用、中断、异常跨越了操作系统的边界,跨越边界就会有一定的代价,这个代价是为了让整个OS安全可靠正常的运行

  • 跨越OS边界的开销
    • 在执行时间上的开销超过程序调用
    • 开销
      • 建立中断/异常/系统调用号与对应服务例程映射关系的初始化开销
      • 建立内核堆栈
      • 验证参数(OS不信任内核,要对内核发来的参数进行验证,这也需要一定的开销)
      • 内核态映射到用户态的地址空间
        更新页面映射权限
      • 内核态独立地址空间
        TLB

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

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

相关文章

软文转化率如何提高,媒介盒子分享三大原则

决定软文推广的主要因素就在于软文内容,但是如何才能提高软文转化率呢?下面就让媒介盒子为你解答! 一、 软文类型 软文类型按照推广目标划分主要分为品牌软文、产品软文、营销软文。 ● 品牌软文 品牌软文的目的在于扩大品牌对群众的影响力…

基于Vue+SpringBoot的桃花峪滑雪场租赁系统

项目编号: S 036 ,文末获取源码。 \color{red}{项目编号:S036,文末获取源码。} 项目编号:S036,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…

SpringCloud微服务 【实用篇】| Eureka注册中心、Ribbon负载均衡

目录 一:Eureka注册中心 1. Eureka原理 2. 动手实践 ①搭建EurekaServer ②服务注册 ③服务发现 二:Ribbon负载均衡 1. 负载均衡原理 2. 负载均衡策略 3. 懒加载 一:Eureka注册中心 前面已经分析了,无论是SpringCloud还…

从0开始学习JavaScript--JavaScript中的集合类

JavaScript中的集合类是处理数据的关键,涵盖了数组、Set、Map等多种数据结构。本文将深入研究这些集合类的创建、操作,以及实际应用场景,并通过丰富的示例代码,帮助大家更全面地了解和应用这些概念。 数组(Array&…

【Java】NIO概述

本文主要介绍Java的IO。 这里主要按类的操作方式和操作对象对JavaIO进行分类,方便理解,后续使用时可以方便地查询。 一、操作方式分类 首先介绍几组概念: 字节流和字符流: 字节流:以字节为单位,每次次读…

【高级网络程序设计】Week2-3 HTML

一、The Basics 1. HTML&HTML file HTMLMarkup languageHyper Text Markup LanguageHTML fileText file with markup tags.htm/.html extension Create an html file Open an editor Type: <html><head><titile><body> Save it as .html Open i…

计算机网络——网络可靠性及网络出口配置

1. 前言&#xff1a; 学习目标&#xff1a; 1.了解链路聚合的作用 2. 了解ACL的工作原理 3. 了解NAT的工作原理和配置 2. 网络可靠性方案 网络可靠性是指网络在面对各种异常情况或故障时&#xff0c;能够维持正常运行和提供服务的能力。这包括防止网络中断、减小数据丢失的可能…

vue3中使用全局自定义指令和组件自定义指令

这篇文章会教大家如何实现全局自定义指令和组件自定义指令 &#x1f4d3;全局自定义指令和组件自定义指令的区别&#xff0c;除了写法不同和作用不同&#xff0c;其他的包括生命周期的使用方法都是一致的&#xff0c;全局自定义指令在main.ts中注册后整个项目都可以使用&#x…

dvwa-command injection 代码审计(超详细逐行审计)

dvwa-command injection 代码审计 low <?phpif( isset( $_POST[ Submit ] ) ) {// Get input$target $_REQUEST[ ip ];// Determine OS and execute the ping command.if( stristr( php_uname( s ), Windows NT ) ) {// Windows$cmd shell_exec( ping . $target );}…

Parallel Diffusion Models of Operator and Image for Blind Inverse Problems

盲逆问题算子和图像的并行扩散模型 论文链接&#xff1a;https://arxiv.org/abs/2211.10656 项目链接&#xff1a;https://github.com/BlindDPS/blind-dps Abstract 在正向算子已知的情况下(即非盲)&#xff0c;基于扩散模型的逆问题求解器已经展示了最先进的性能。然而&…

linux md5sum计算hash指令

在soc启动&#xff0c;验证镜像签名时&#xff0c;会计算文件的hash值&#xff0c;确保文件未被修改&#xff0c;md5sum可以计算&#xff0c;有256,512位的的其他指令&#xff0c; 如下&#xff0c;计算文件hash值。

@PostConstruct虽好,请勿乱用

1.问题说明 在日常的业务开发中&#xff0c;有时会利用PostConstruct在容器启动时执行一些任务。例如&#xff1a; PostConstruct public void init(){System.out.println("service 初始化..............."); }一般情况这没什么问题&#xff0c;但最近一个同事在做…

Android加固为何重要?很多人不学

为什么要加固&#xff1f; APP加固是对APP代码逻辑的一种保护。原理是将应用文件进行某种形式的转换&#xff0c;包括不限于隐藏&#xff0c;混淆&#xff0c;加密等操作&#xff0c;进一步保护软件的利益不受损坏。总结主要有以下三方面预期效果&#xff1a; 1.防篡改&#x…

django restful framework序列化与反序列化

在前后端分离开发中&#xff0c;对于RESTfulAPI设置&#xff0c;一般需要将查询/更新数据以JSON方式进行返回。 序列化 Model.py from django.db import models class User(models.Model):username models.CharField(verbose_name用户名,max_length10)age models.IntegerF…

RT-Thread JSN-SR04T

JSN-SR0T4-2.0 超声波测距模块可提供 20cm-600cm 的非接触式距离感测功能&#xff0c;测距精度可达高到 2mm&#xff1b;模块包括收发一体的超声波传感器与控制电路组成。产品采用工业级一体化超声波探头设计&#xff0c;防水型&#xff0c;性能稳定&#xff0c;谦容市场上所有…

手搓js轮播图_JavaScript进阶

手搓js轮播图 逻辑解析html结构图片切换方法圆点导航切换效果左右箭头点击切换圆点导航点击切换自动播放&#xff0c;介入暂停 完整代码 逻辑解析 css的样式我就不再进行讲述&#xff0c;如果有需求可以评论区告诉我&#xff0c;我再出一篇文章进行详细讲解 js轮播图最主要的核…

java算法学习索引之字符串问题

一 判断两个字符串是否互为变形词 【题目】给定两个字符串str1和str2&#xff0c;如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样&#xff0c;那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词。 public boolean isDeformation(String str1…

SPSS快速聚类

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

React结合antd5实现整个表格编辑

通过react hooks 结合antd的table实现整个表格新增编辑。 引入组件依赖 import React, { useState } from react; import { Table, InputNumber, Button, Space, Input } from antd;定义数据 const originData [{ key: 1, name: 白银会员, value: 0, equity: 0, reward: 0…

全球首款容器计算产品重磅发布,激活上云用云新范式

云布道师 10 月 31 日&#xff0c;杭州云栖大会上&#xff0c;阿里云云原生应用平台负责人丁宇宣布&#xff0c;阿里云容器计算服务 ACS 正式发布&#xff01;ACS 将大幅降低企业和开发者用云门槛&#xff0c;真正将 Serverless 理念大规模落地。 容器计算服务 ACS&#xff0c…