作者: | 来源:互联网 | 2023-09-18 17:20
操作系统的定义##标题操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。操作系统管理服务操作系统为应用提供的一些服务为应用提供计算资源的抽象CP
操作系统的定义## 标题
操作系统是管理硬件资源、控制程序运行、改善人机界面和为 应用软件提供支持的一种系统软件。
操作系统=管理+服务
操作系统为应用提供的一些服务
为应用提供计算资源的抽象
CPU:进程/线程,数量不受物理CPU的限制
内存:虚拟内存,大小不收物理内存的限制
I/O设备:将各种设备统一抽象为文件,提供统一接口
为应用提供线程间的同步
应用可以实现自己的同步原语(如spinlock)
操作系统提供了更高效的同步原语(与线程切换配合,如pthread_mutex)
为应用提供进程间的通信
应用可以利用网络进行进程间通信(如loopback设备)
操作系统提供了更高效的本地通信机制(具有更丰富的语义,如pipe)
操作系统对应用的管理
生命周期的管理
应用的加载、迁移、销毁等操作
计算资源的分配
CPU:线程的调度机制
内存:物理内存的分配
I/O设备:设备的复用与分配
安全与隔离
应用程序内部:访问控制机制
应用程序之间:隔离机制,包括错误隔离和性能隔离
中断和异常的区别:
中断(设备产生、异步):
可屏蔽:设备产生的信号,通过中断控制器与处理器相连,可别暂时屏蔽(如,键盘、网络事件)
不可屏蔽:一些关键硬件的崩溃(如,内存校验错误)
异常(软件产生、同步)
错误(Fault):如有缺页异常(可恢复)、段错误(不可恢复)等
陷阱(Trap):无需恢复,如断点(int 3)、系统调用(int 80)
中止(Abort):严重的错误,不可恢复(机器检查)
延续至今的中断控制器
GIC(通用中断控制器):中断类型较多,将中断分发给不同的核(对称或非对称)进行处理
主要功能:
分发:管理所有中断、决定优先级、路由
CPU接口:给每一个CPU核有对应的接口
案例:Linux的中断处理理念
在中断处理中做尽量少的事
推迟非关键行为
结构:Top half &Bottom half
Top half:做最少的工作后返回
Bottom half:推迟处理(softirq,tasklets,工作队列内核线程)
Linux追踪系统调用:
每当有系统调用产生时,Linux可打印发生的系统调用、系统调用的参数和系统调用的返回值
ptrace()可追踪Linux中的系统调用清况
—广泛应用在各种debugger中
命令行中
—strace追踪系统调用
—ltrace追踪库函数的调用