《操作系统原理与设计》笔记
本文用于整理《操作系统原理与设计》课程上所使用 Slides 的笔记,以备查阅。
第一章 操作系统概览计算机系统概览:
系统组织:由 CPU 连接总线,通过设备控制器,和其他 IO 设备进行交互
存储结构:采用三角形式的存储结构,通过缓存来提高性能,也通过 DMA 技术提高外存性能
系统架构:多处理器系统,多核系统,集群系统
操作系统概览:
多道程序(multiprogramming):用于提高 CPU 利用率
多任务处理(multitasking):用于提高任务的可交互性
中断驱动理念:硬件中断通过设备产生,软件中断(exception/trap)则由程序错误,系统调用等产生
双模式运作(dual-mode):通过 mode bit 来区分是 user mode 还是 kernel mode,后者具有更高权限
系统调用:由内核提供给上层的 api,用于屏蔽与底层硬件交互的过程
操作系统标准:POSIX 和 BSD,分别实现的操作系统有 Linux 和 MacOS
操作系统组件:
进程:是程序的运行时实例,在 Linux 中通过树结构维护父子关系,需要提供同步, ...
《操作系统概念》笔记
本文总结了《操作系统概念》中的知识点,以便查阅。
第二章 操作系统结构操作系统的服务:主要包括以下功能:
用户界面
程序执行
IO 操作
文件系统操作
通信:通过共享内存或者消息交换实现
错误检测
资源分配
记账:记录用户使用资源类型和数量
保护和安全
系统调用:提供操作系统的服务调用接口,该部分通常使用 C 或者 C++ 实现,当然,对某些底层硬件操作可能需要使用汇编。向操作系统传参的方法有:寄存器传参,栈传参,表传参。
系统调用类型:进程控制,文件管理,设备管理,信息维护,通信,保护。
操作系统的结构:
简单结构:如 MS-DOS,并没有仔细划分为模块
分层方法:每层上调用的接口是不同的,用于区分用户接口和不同等级的系统接口
微内核:主要功能在于为客户端程序和运行在用户空间的各种服务提供通信,通信是通过消息传递实现的
模块:最佳方法是可加载的内核模块,常见于现代 Linux 系统中
操作系统的引导:加载内核以启动计算机的过程,称为系统引导。大多数的操作系统都有一个引导程序,改程序能够定位内核,并将其加载到内存以开始执行。当 CPU 收到一个重置事件 ...