操作系统
操作系统基础与中断
前言
长时间没有学习操作系统,知识有些遗忘,特重新记录一下学习过程,以便回顾。
一、操作系统是什么?
操作系统概念
操作系统是负责协调、管理硬件、软件等计算机资源,为上层应用以及用户提供服务的一种系统软件。
操作系统的功能和目标
主要有三大功能
资源的管理者
- 设备管理
- 文件管理
- 存储器管理
- 处理机管理
向用户提供服务
- 命令接口 (允许用户直接使用,分为联机命令接口,脱机命令接口)
- 联机命令接口(交互式命令接口)用户说一句,系统执行一句
- 脱机命令接口(批处理命令接口)用户说一堆,系统做一堆
- 程序接口(需要通过程序间接使用,由一组系统调用组成,又叫广义指令)
- GUI
对硬件机器的扩展
操作系统的特征
- 并发(宏观上同时发生,微观上交替发生)
- 异步(由于资源有限,进程的执行不是一贯到底的,以不可预知的速度向前推进)
- 虚拟(物理上的实体变为若干个逻辑上的对应物,时分复用,空分复用)
- 共享(资源共享,同时共享,互斥共享)
操作系统的运行机制和结构
两种指令
- 特权指令(需要核心态)
- 非特权指令
两种处理器状态
- 核心态 || 管态(可以执行特权和非特权指令)
- 用户态 || 目态(只能执行非特权)
两种程序
- 应用程序
- 内核程序(运行在核心态)
两种体系结构
- 大内核(高性能,内核代码庞大,难以维护)
- 微内核
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
二、中断与异常
中断机制的诞生
解决同一时间只能运行一道程序,提高系统资源利用率,有了中断,才可以实现多道程序的并发执行
中断的分类
根据中断信号的来源cpu内部还是外部分为内外中断
- 内中断(异常):
- 陷阱、陷入(故意设计,访管指令)
- 故障(错误条件引起,可以被故障处理程序修复)
- 终止(不可被修复)
- 外中断:
- I/O中断请求
- 用户干预
中断处理过程
- cpu执行完每条指令后,需要检查当前是否有外部中断信号
- 检测到外部中断信号后,需要保存被中断程序的cpu环境,(PSW,PC,各种通用寄存器)
- 根据中断信号转到相应的中断处理程序(核心态)
- 处理完中断后,回复原进程的CPU环境,并继续向下执行
系统调用
应用程序通过系统调用申请获得操作系统的服务
应用程序凡是设计资源的相关操作,都必须通过系统调用向操作系统申请服务,以确保系统的安全性与稳定性
系统调用会使处理器从用户态进入核心态(用户态下执行trap指令)
与库函数的区别
有的库函数会使用系统调用,有的不会,会隐藏系统调用的一些细节,方便上层进行系统调用
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍操作系统和中断。