操作系统(笔记)(一)

news2024/11/25 10:08:56

1、操作系统的功能和目标

1.1功能

  • 存储管理
  • 文件管理
  • 设备管理
  • 处理机管理
  • 进程管理

1.2目标

  • 方便性:操作系统作为用户与计算机硬件系统之间的接口,提供了直观的命令和界面,使得用户能够更容易地操作计算机。
  • 有效性:操作系统旨在提高系统资源的利用率,通过合理组织计算机的工作流程,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量。
  • 可扩充性:为了适应计算机硬件、体系结构以及应用程序的发展,操作系统需要具有良好的可扩充性,以便于添加、修改相应的功能和模块。
  • 开放性:在计算机应用的日益普及和网络环境的转向下,操作系统的开放性变得尤为重要,以便于不同硬件和软件之间的兼容。

直接给用户使用:

  • GUI(图形用户界面)
  • 命令接口
    • 联机命令接口
    • 脱机命令接口

给软件程序员使用:

  • 程序接口

其中命令接口和程序接口统称为“用户接口”

2、操作系统的特征

2.1并发

指的是在一个时间段内,有多任务或多线程在交替执行。在这种情况下,多个任务或线程可能会同时占用CPU资源,但在宏观层面上,它们的执行是按照一定的顺序进行的。并发提高了系统的资源利用率和吞吐量,因为它允许多个任务在不完全同时执行的情况下相互竞争CPU的使用权。并发通常涉及到任务调度和时间片轮询等技术来实现对CPU资源的合理分配。(宏观上同时发生,微观上交替发生

例子:这就比如一天上午,我8:00-10:00需要学习操作系统,10:00-12:00需要学习数据库,在“一天上午”的角度上看,我这一天上午同时学习了操作系统和数据库,而从“小时”的角度上看,我是交替学习这两门课程的。

注意:单核CPU同一时刻只能执行一个程序,各个程序只能并发进行

           多核CPU同一时刻可以执行多个程序,各程序可以并发进行

2.2并行

则意味着在同一时间段内,多个任务或线程同时在不同的处理器核心上执行。并行计算能够充分利用所有可用的硬件资源,因为它允许多个任务并行运行而不必等待其他任务完成。并行计算可以提高系统的性能和效率,特别是在处理大数据集、图形渲染和其他需要大量计算的任务时。并行可以通过多处理器系统或分布式计算架构实现。

例子:我在学习时,同时学习操作系统和数据库,即在同一时刻,我的脑子里面既是操作系统的知识,又是数据库的知识。

2.3共享

2.3.2互斥共享

某些资源在同一时刻只能被一个进程访问。

2.3.2同时访问共享

允许多个进程在同一时刻访问同一个资源

并发性和共享性互为存在条件。

2.4虚拟

  • 空分虚拟技术
  • 时分虚拟技术

2.5异步

多个程序并发运行的环境中,每个程序的运行结果、运行次序以及每次运行的时间都是不确定的

只有并发性才会导致异步性

3、操作系统运行机制

特权指令:只能由操作系统使用的指令

支持多道程序运行要区分为特权指令和非特权指令

特权指令一般引起处理器状态的切换

3.1内核态(管态)

操作系统管理程序运行的状态,较高的特 权级别,又称特权态(特态)、内核态、系统态。能够执行所有指令,使用所有资源,改变CPU状态

3.2用户态(目态)

用户程序运行时的状态,较低的特权级别, 又称为普通态(普态)、用户态,只能执行非特权指令

注意:程序状态寄存器(PSW),有一个二进制位用来判断系统处于哪一个状态。

3.3状态转变

3.3.1程序状态寄存器/程序状态字(PSW)

CF: 进位标志位     

ZF: 结果为零标志位     

SF: 符号标志位       

OF: 溢出标志位

TF:陷阱标志位

IF:中断允许(中断屏蔽)标志位

VIF:虚拟中断标志位

VIP:虚拟中断待决标志位

IOPL:IO特权级别

3.3.2管态->目态

执行一条特权指令修改PSW

3.3.3目态->管态

由中断引起,硬件自动完成

系统调用

4.中断

4.1内中断(也称为异常)

注意上图中管态下执行的指令可以使“特权指令”也可以是“非特权指令”,也就是说管态可以执行计算机所有指令

实例1:试图在目态下执行特权指令

实例2:执行除法时发现除数为0

实例3:有时应用程序想请求操作系统内核的服务

此时会执行陷入指令(trap指令)———会引发一个内部中断信号。注意陷入指令是不是特权指令(因为目态可以正常执行)

4.1.1陷入

此情况是应用程序故意引发的(即一个程序执行,需要用到特权指令,这时非特权指令会执行trap指令,使CPU状态进入管态,执行需要的指令。此从目态到管态的过程,需要执行的非特权指令成为陷入指令,这个过程成为陷入。)

4.1.2故障

由错误条件引起,可能被内核程序修复,修复后内核会把CPU使用权还给应用程序,继续执行下面的指令。

4.1.3中止

由致命错误引起,内核无法修复,一般不会再把CPU使用权还给应用程序,而是直接中止此程序

4.2外中断(狭义地称为中断)

时钟部件每隔一段时间给CPU发送一个中断信号。而且需要时I/O设备也会给CPU发送中断信号。

4.3中断机制的原理

对于不同的中断信号,需要不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到中断处理程序在内存中存放的位置。

注意:由上面可知,中断处理程序应该是内核程序(需要运行在内核态)

5计算机组织结构

5.1  I/O设备

计算机中的I/O设备指的是计算机与外部进行信息交换的输入、输出设备。

5.1.1输入设备

  • 负责将外部的信号经过判别、筛选和编码转换,输入到计 算机中.
  • 鼠标、键盘、扫描仪…

5.1.2输出设备

  • 将计算机内部信号经过转换,输出到外部介质上
  • 打印机、显示器…

5.1.3I/O访问方式

  • 程序控制I/O访问
    • 用程序控制I/O设备的运行:检测I/O状态、接受发送指令、 传送数据等。(结构简单、执行效率低---没有中断)
  • 中断驱动I/O访问
    • 1)CPU初始化I/O并启动第一次I/O操作。
    • 2)CPU去忙别的事情。
    • 3)当I/O完成时,CPU将被中断。
    • 4)CPU处理中断。
    • 5)CPU恢复被中断的程序。
  • 直接I/O访问
    • DMA方式

6.OS与用户之间的接口

6.1普通用户接口(Shell

  • 图形用户接口
  • 命令接口

6.2程序接口(系统调用和API)

  • 系统调用(System Call):提供进程与OS之 间的接口。
  • 应用程序接口(API):在函数的实现中封装 了系统调用。

7演化过程

  • 初步操作系统---单道批处理系统
    • 自动性
    • 顺序性
    • 单道性
  • 多道操作系统(在一段时间内,有多个程序同时占有CPU的使用权)
    • 多个作业并发批处理运行,在程序执行过程中不能与人进行交互
    • 并发性
    • 不交互性
    • 自动批处理
  • 分时操作系统系统
    • 并发运行的每个程序进程分配 一定的“时间片”(时间段)
    • 当一个程序进程在CPU中运行完 这段时间后,它就被剥夺CPU的 使用权,分时系统调度其它的程 序进程到CPU中并运行
    • 多路性(并发性)
    • 及时性
    • 交互性
    •  独立性
    • 实现共享主机
  • 个人操作系统
    • 芯片集成度越来越高,速度越来越快,价格越来越便宜
    • 16位 —> 64位
    • Windows,Linux,Minix,UNIX,Mac
    • 操作简单、界面丰富、可操作性强

例题:多道操作系统是如何让多个作业并发执行的?

  • 磁盘中管理多个程序文件,能够进行程序的读入、读出 (文件管理系统)
  • 为多个并发程序在内存中分配空间(内存管理)
  • 在一个时间段让哪个程序运行,被中断的程序如何恢复运 行(处理器管理-进程管理)
  • 为程序使用I/O设备提供方便的系统接口(I/O设备管理)

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

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

相关文章

Java基于微信小程序的高校讲座预约系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

SpringBoot集成mongodb

mongodb环境搭建 采用docker-compose搭建,配置文件如下 version: 3# 网桥mongo -> 方便相互通讯 networks:mongo:services:# mongodbmongodb:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mongo:4.4.6 # 原镜像mongo:4.4.6restart: unless-stoppedcont…

Vue.js+SpringBoot开发天然气工程业务管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…

抖音涨粉技巧揭秘可靠吗是真的吗

抖音涨粉技巧揭秘:真实与可靠 在抖音这样一个火爆的短视频平台上,拥有大量粉丝已成为许多人的追求目标。因此,一些涨粉技巧被推广为能够快速增加粉丝数量的方法。然而,这些技巧到底可靠吗?我们一起来揭秘。 揭秘抖音涨…

Python打发无聊时光:13.用pywin32库制作电脑本地快捷应用

第一步:新建一个simple_app.py 装pywin32库 pip install pywin32 新建一个simple_app.py,复制下面代码,或者可以自己设计内容 import tkinter as tkclass AnimatedGUI:def __init__(self, root):self.root rootself.root.title("玩…

Python爬虫——Requests

目录 简介 基本使用​编辑 ​编辑 安装 一个类型和六个属性 请求类型 GET 代码示例 POST 代码示例 代理 古诗文网绕过验证码登录 总结 简介 Python的Requests库是一个用于发送HTTP请求的常用库。它提供了简单且人性化的API,使得发送HTTP请求变得非常容易。…

【嵌入式——QT】QTableWidget

表格小部件为应用程序提供标准的表格显示功能。QTableWidget中的项由QTableWidgetItem提供。 如果你想要一个使用你自己的数据模型的表,你应该使用QTableView而不是这个类。 常用函数 cellWidget(int row, int column) const:返回显示在给定行和列的单…

嵌入式 Linux 开发的基本概念 及 学习路线

原文链接:https://www.cnblogs.com/DSCC2020/p/13787321.html 1.嵌入式 Linux 开发的基本概念 1.1嵌入式 Linux 的组成 嵌入式 Linux 系统,就相当于一套完整的 PC 软件系统,如下图所示: 1.2嵌入式 Linux 的日常开发流程 Bootloa…

【深度学习】实验10 使用Keras完成逻辑回归

文章目录 使用Keras完成逻辑回归1. 导入Keras库2. 生成数据集3. 构造神经网络模型4. 训练模型5. 测试模型6. 分析模型 附:系列文章 使用Keras完成逻辑回归 Keras是一个开源的深度学习框架,能够高效地实现神经网络和深度学习模型。它由纽约大学的Francoi…

MS5192TA/MS5193TA低噪声、低功耗、16/24 位 ∑-ΔADC

产品简述 MS5192TA/MS5193TA 是一款适合高精度测量应用的低功耗、低 噪声、三通道差分输入的 16bit/24bit 模数转换器。其内部集成了输 入缓冲器、低噪声仪表放大器,当增益设置为 64 ,更新速率为 4.17Hz 时,均方根噪声为 25nV 。集…

uniapp自定义底部导航

我这边使用的是uview组件库&#xff0c;进行开发的&#xff01; <template><view class"footer-bar"><u-tabbar :value"select ? select : 0" change"changeTab" :border"true" :fixed"true" :placeholde…

2025汤家凤考研数学,基础视频课程+百度网盘+PDF真题讲解

平时大家都半开玩笑地讲&#xff1a;我数学想要考150分&#xff01;那索性今天这一期&#xff0c;今天认真和大家聊一下&#xff1a; 想考到考研数学150分&#xff0c;应该如何准备&#xff1f; 如果还有小伙伴不知道在哪看汤神的ke&#xff0c;可以看一下以下 2025汤神全程…

JVM入门篇(面试前速补)

近期看看JVM&#xff0c;看了狂神说入门教学&#xff0c;总结下给大家。 文章目录 1、JVM的位置2、JVM的结构体系3、类加载器及双亲委派机制3.1、类加载器作用3.2、类加载器类型3.3、双亲委派机制 * 4、沙箱安全机制5、Native、方法区5.1、Native&#xff08;本地方法栈引用&a…

算法设计.

文章目录 1. 贪心算法&#xff1a;只看当前1.1 零钱兑换问题&#xff1a;力扣322 2. 活动选择问题3. 动态规划3.1 不同路径&#xff1a;3.2 0-1背包问题3.3 完全背包问题3.4 零钱兑换-动态规划 4. 最长公共字串--动态规划5. 最长公共子序列6. 最长递增子序列7. 打家劫舍8. 全排…

从mysql 数据库表导入数据到elasticSearch的几种方式

从MySQL数据库导入数据到Elasticsearch有几种方式&#xff0c;主要包括以下几种&#xff1a; 1. 使用Logstash&#xff1a; Logstash是一个开源的数据收集引擎&#xff0c;可以用来从不同的数据源导入数据到Elasticsearch。它具有强大的数据处理能力和插件生态系统&…

信息熵、KL散度、交叉熵、互信息、点互信息

信息熵 信息量 信息量是对信息的度量&#xff0c;衡量事件的不确定性&#xff0c;越小概率的事件发生了产生的信息量越大。我们应该用什么形式的函数表达信息量呢&#xff1f;除了随着概率增大而减少&#xff0c;这个函数还有具有以下性质&#xff1a; 如果有两个事件x和y彼…

利用Python爬取高德地图全国地铁站点信息

利用Python中的requests库进行地铁站点信息的获取,同时将数据保存在本机excel中 # 首先引入所需要的包 import requests from bs4 import BeautifulSoup import pandas as pd import json# 发送 GET 请求获取网页内容 url http://map.amap.com/subway/index.html response r…

K线实战分析系列之二十三:塔形顶部和塔形底部

K线实战分析系列之二十三&#xff1a;塔形顶部和塔形底部 一、塔形顶部和塔形底部二、塔形顶部和塔形底部总结 一、塔形顶部和塔形底部 塔形顶部&#xff1a;预示着阶段性顶部的形成 塔型底部&#xff1a;预示着阶段性底部的形成 二、塔形顶部和塔形底部总结 形态的两…

字节后端实习 一面凉经

心脏和字节永远都在跳动 深圳还有没有大厂招后端日常实习生啊&#xff0c;求捞&#xff5e;&#xff08;boss小公司也不理我&#xff09; 很纠结要不要干脆直接面暑期实习&#xff0c;又怕因为没有后端实习经历&#xff0c;面不到大厂实习。死锁了

2195. 深海机器人问题(网络流,费用流,上下界可行流,网格图模型)

活动 - AcWing 深海资源考察探险队的潜艇将到达深海的海底进行科学考察。 潜艇内有多个深海机器人。 潜艇到达深海海底后&#xff0c;深海机器人将离开潜艇向预定目标移动。 深海机器人在移动中还必须沿途采集海底生物标本。 沿途生物标本由最先遇到它的深海机器人完成采…