大二下 计算机操作系统 第一次课 20250221

前情提要(C,C++,计算机组成原理)

1.操作系统的定义

操作系统实际上是一套软件,负责让程序更容易运行,允许程序共享内存,使程序能够与设备交互,以及其他类似有趣的事务。(OSTEP)
操作系统是为用户及其应用程序管理计算机资源的软件层。(OSPP)
操作系统是一个在计算机用户和计算机硬件之间充当中介的程序。(OSC)
操作系统是在内核模式下运行的软件。(MOS,由 Tanenbaum 编著)
操作系统是对硬件进行管理和抽象,并为应用提供服务并进行管理的程序。(现代操作系统)

操作系统中危险的操作(不安全的操作),如访问硬盘等,都要操作系统陷入内核态。每个程序都可以看作享有整个计算机。
第一部分:操作系统基本概念思维导图

2.不同视角下的操作系统

什么是程序? 程序=状态机 栈与栈帧概念
应用视角的操作系统:syscall系统调用。中断处理程序。操作系统提供与其他对象交互的API

3.状态机

什么是状态机?
状态机是一种数学模型,用来描述一个系统在不同状态之间转换的过程。它就像一个有多个“房间”的房子,每个“房间”代表一种状态,而从一个房间到另一个房间的“门”代表状态之间的转换。
状态机的组成部分
状态机主要由以下几个部分组成:
状态(State):系统在某个时刻所处的“位置”。比如,一个进程可以处于“运行”状态、“就绪”状态或“等待”状态。
事件(Event):触发状态转换的“信号”。比如,一个进程运行结束,或者等待的资源被释放。
转换(Transition):从一个状态到另一个状态的过程。比如,进程从“就绪”状态转换到“运行”状态。
状态机在操作系统中的应用
在操作系统中,状态机最常见的应用是进程管理。操作系统需要管理很多进程(程序的运行实例),而进程的状态会随着运行过程不断变化。我们可以用状态机来描述进程的状态变化。
进程状态机示例
一个进程通常有以下几种状态:
就绪(Ready):进程已经准备好运行,但正在等待CPU分配给它时间。
运行(Running):进程正在CPU上执行。
等待(Waiting):进程因为某些原因(如等待磁盘数据)而暂停运行。
这些状态之间的转换如下:
当进程从就绪状态被分配到CPU时,它会从“就绪”状态转换到“运行”状态。
如果进程运行结束,它会从“运行”状态转换到“终止”状态。
如果进程需要等待某些资源(如磁盘数据),它会从“运行”状态转换到“等待”状态。
当等待的资源可用时,进程会从“等待”状态转换回“就绪”状态。
状态机的作用
状态机的作用是帮助我们清晰地描述和管理系统的运行过程。在操作系统中,它可以帮助我们:
高效管理资源:比如,通过状态机,操作系统可以合理分配CPU时间给不同的进程。
避免错误:状态机的规则可以防止系统进入不合法的状态,比如一个进程不能直接从“等待”状态跳到“终止”状态。
简化设计:通过状态机,我们可以用图形化的方式(状态图)来表示复杂的系统行为,让设计和理解变得更加容易。
总结
状态机是一个非常有用的工具,它帮助我们理解系统的行为和状态变化。在操作系统中,状态机主要用于管理进程、资源分配等复杂任务。你可以把它想象成一个“交通灯”,根据不同的信号(事件)来控制状态的转换。

4.本节课总结

程序 = 状态机
源代码S:状态迁移 = 执行语句
二进制代码C:状态迁移 = 执行指令
编译器 C = Compiler(S)
应用视角的操作系统:syscall
计算机系统没有魔法(不存在玄学),一切都建立在确定的机制上
你的武器:gcc, gdb, binutils, strace…

posted @   陆舟LandBoat  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示