操作系统(1)—— 基本概念、系统调用、异常和中断

Erin ·
更新时间:2024-09-20
· 570 次阅读

什么是操作系统 用户角度上,操作系统是一个系统软件 管理应用程序 为应用程序提供服务 杀死应用程序 资源管理 管理外设,分配资源 操作系统架层次结构

硬件之上,应用程序之下

应用软件:办公软件、视频播放软件

操作系统位于应用程序之下,为应用软件提供服务支撑

Linux、Windows、Android的界面

属于外壳(Shell) ,而不是内核(Kernel) 。Kernel是研究重点,在Shell以下。

Kernel 操作系统内部组件,包括:

CPU调度器 物理内存管理 虚拟内存管理 文件系统管理 中断处理与设备驱动

OS Kernel的特征

并发:计算机同时存在多个运行的程序,需要OS管理和调度

共享:同时访问、互斥共享

虚拟:利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务

异步:程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知,但只要运行环境相同,OS需要保证程序运行的结果也要相同。

为什么学习操作系统 综合课程:结合多种不同的课程,包括程序设计语言、数据结构、算法等。 已经有了很多操作系统,例如Windows、Linux、Unix。

操作系统:计算机科学研究的基石之一。

计算机系统的基本组成部分 由硬件的发展和应用需求所驱动 学术和工业的持续推进 操作系统的需求 操作系统必须是高效的,低耗CPU、内存、磁盘的 操作系统出错意味着机器出错,操作系统必须比用户程序拥有更高的稳定性 操作系统是系统安全的基础 操作系统需要权衡:空间与时间、性能和可预测性、公平和性能 硬件方面的需要:良好的硬件管理、合理的资源分配,例如磁盘速度跟CPU、内存相差很多,操作系统需要协调处理。 历史概要 早期计算机使用纸带传输程序和数据,操作系统只起到加载作用; CPU等硬件快速发展,计算机速度得到提升,性能未得到充分利用; 内存的容量越来越大,CPU执行多个程序; 出现了分时系统、分布式操作系统、松紧耦合系统。 操作系统的启动 相关组成部分:CPUI/O(timer/Disk,etc)、内存 Disk:硬盘,存放OS。 BIOS:基本O/I处理系统,用来检测外设。 BIOS启动时的固定特殊地址:CS:IP=0xf000:fff0。(CS:段寄存器,IP:指令寄存器) POST(加电自检):寻找显卡和执行BIOS。 Bootloader:加载OS,位于内存的第一个扇区,使CPU可以执行操作系统。 操作系统与设备和程序交互(Interface:系统调用、异常、中断) 1. 定义 系统调用(来源于应用程序):应用程序主动向操作系统发出服务请求。 异常(来源于不良的应用程序):非法指令或者其他坏的处理状态,如内存出错。 中断(来源于外设):来自不同的硬件设备的计时器和网络的中断。 2. 为什么应用程序不能直接访问外设或操作系统 在计算机运行中,内核时被信任的第三方 只有内核可以执行特权应用 为了方便应用程序 3. 三者的区别与特点

源头

中断:外设 异常:应用程序意想不到的行为 系统调用:应用系统请求操作系统提供服务

处理时间

中断:异步(不知道产生的时间点) 异常:同步(已知发生的时间点) 系统调用:异步或同步 响应: 中断:持续,对用户应用程序是透明的 异常:杀死或重新执行意想不到的应用程序指令 系统调用:等待和持续 4. 中断和异常的处理机制 (1)中断处理

硬件:设置中断标记(CPU初始化)

将内部、外部事件设置中断标记 中断事件的ID

软件

保存当前处理状态,便于后续恢复现场 中断服务程序处理 清除中断标记 恢复之前保存的处理状态

(2)异常处理

异常:异常编号

保存现场 异常处理:杀死产生了异常的程序/重新执行异常指令 恢复现场 5. 系统调用的处理机制 程序访问主要是通过高层次的API接口而不是直接进行系统调用 Win 32 API 用于 Windows POSIX API 用于 POSIX-based systems,包括Unix、Linux、Mac OS X的所有版本 Java API 用于 Java虚拟机(JVM) 通常情况下,有每个系统调用相关的序号,系统调用接口根据这些序号来维护表的索引; 系统调用接口调用内核态中预期的系统调用,并返回系统调用的状态和其他返回值; 用户不需要知道系统调用是如何实现的,只需要获取API和返回结果。 6. 跨越操作系统边界的开销 在执行时间上的开销超过系统调用 开销: 简历中断/异常/系统调用序号与对应服务例程映射关系的初始化开销 建立内核堆栈 验证参数 内核态映射到用户态的地址空间——更新页面映射权限 内核态独立地址空间(TLB)
作者:Sherry_wang168



异常 调用 中断 操作系统 系统 系统调用

需要 登录 后方可回复, 如果你还没有账号请 注册新账号