THU 操作系统公开课
清华大学操作系统公开课笔记
HearmingBear
这个作者很懒,什么都没留下…
展开
-
清华大学操作系统公开课(十一)文件系统
1.总体介绍 文件系统是操作系统一个重要的子系统,方便读写磁盘上的数据。主要讲述三方面内容,第一方面是从用户角度介绍如何进行文件读写操作,第二方面是介绍文件读写操作系统如何实现,最后一部分是介绍多磁盘管理。2.文件系统和文件 文件系统是一种用于持久性存储的系统抽象,也就是断电后数据不会丢失,比如说磁盘。 要让用户组织、控制、导航、访问和检索数据 大多数的计算机系统包含文...原创 2019-11-04 00:09:42 · 689 阅读 · 0 评论 -
清华大学操作系统公开课(十)死锁和进程通信
1.死锁问题 先讲一个生活中的例子,比如说单向通行桥梁。 死锁在操作系统中会频繁出现,一组阻塞的线程持有一种资源,却等待获取另一个线程占有的一个资源。比如,系统有两个磁盘驱动器,P1和P2各有一个,都需要另外一个。 可以看出死锁问题是,由于竞争资源或者通信关系,两个或更多线程在执行中出现,永远相互等待只能由其他进程引发的事件。 出现死锁的原因:进程的并发执行...原创 2019-11-02 15:58:53 · 421 阅读 · 0 评论 -
清华大学操作系统公开课(九)信号量和管程
1.背景 先回顾一下上一章的内容,上一章讲了并发会带来竞态条件的问题,我们用互斥可以保证一定的确定性。但是光有互斥是不够的的,我们有时希望多线程能够同时访问某些共享资源,这时候只有互斥是不够的,我们还需要实现同步,同样我们需要更高层的编程抽象(如:锁),需要从底层硬件支持编译来实现。同步:我们把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按...原创 2019-11-02 00:08:16 · 593 阅读 · 0 评论 -
清华大学操作系统公开课(八)互斥
1.背景 在我们的计算机系统里有多个进程存在,进程之间会进行各种各样的交互,交互会涉及到对共享资源的访问,如果对这些交互处理不当,会产生各种各样的问题,比如饥饿、死锁等。 发生这些问题其实还是跟调度相关。独立的线程不会出现这些问题,合作线程会。独立线程 独立的线程有以下特征: 不和其他线程共享资源或状态 确定性:输入状态决定结果 可重现性:能够重现起始条件、...原创 2019-11-01 15:21:31 · 619 阅读 · 0 评论 -
清华大学操作系统公开课(七)处理机调度
1.背景 上一章介绍了进程都希望获得CPU继续执行,这就涉及到上下文切换: 切换CPU的当前任务,从一个进程/线程到另一个 保存当前进程/线程在PCB/TCB中的执行上下文(CPU状态) 读取下一个进程/线程的上下文 操作系统要在某个时刻选择哪个进程占用CPU资源,使得计算机效率最高或者满足某些进程的特殊需求,这样的选择就取决与不同的CPU调度策略。 CPU调度是...原创 2019-10-30 00:16:20 · 609 阅读 · 0 评论 -
清华大学操作系统公开课(六)进程管理
1.进程定义 进程和程序的区别在哪?一般我们把一个程序的一次运行叫做一个进程,粗略的说没什么太大区别,只是后来计算机内能跑很多个程序,有可能同时运行多次一个程序,这样用进程的概念可以区分不同的运行状态。 进程定义:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。 可以看到,刚开始通过将源代码文件进行编译链接,变成了静态的可执行文件,只有当我们的系统将这段程序...原创 2019-10-28 12:47:48 · 855 阅读 · 0 评论 -
清华大学操作系统公开课(五)页面置换算法
下面介绍在虚拟存储管理中有哪些页面置换算法。1.总览局部页面置换算法 最优页面置换算法(OPT,optimal) 先进先出算法(FIFO) 最近最久未使用算法(LRU,Least Recently Used) 时钟页面置换算法(Clock) 最不常用算法(LFU,Least Frequently Used) Belady现象 LRU、FIFO和...原创 2019-10-25 16:50:29 · 843 阅读 · 0 评论 -
清华大学操作系统公开课(四)虚拟内存概念
1.虚拟内存起因 虚拟内存的起因说白了就是内存不够用,程序规模的增长速度远远大于存储容量的增长速度,我们要尽可能想办法扩大内存。 我们理想中想要的存储器,是容量更大、速度更快、价格更便宜的非易失性存储器,但这样的存储器是不存在的,所以有了现在这种层次结构的存储器。 这种“金字塔”型存储器把速度快、造价昂贵的存储单元放在CPU附近,加快访问速度。现在存储器是越来越快,但是每次存...原创 2019-10-22 23:37:49 · 313 阅读 · 0 评论 -
清华大学操作系统公开课(三)非连续内存分配
为什么要采用非连续内存分配的方式?因为上一章讨论的连续内存分配算法(最先适配、最佳适配、最差适配)都有各种各样的问题。 连续内存分配的缺点:分配给一个程序的物理内存是连续的 内存利用率低 有外碎片、内碎片的问题 想要解决这些问题,可以考虑非连续内存分配。 非连续内存分配的优点:一个程序的物理地址空间是非连续的 更好的内存利用和管理 允许共享代码和数据(共享库等)...原创 2019-10-21 16:46:12 · 440 阅读 · 1 评论 -
清华大学操作系统公开课(二)连续内存分配
本章了解操作系统是如何管理内存的。首先要知道计算机的体系结构和内存分层体系,才能了解计算机是怎么有效管理内存的。1.计算机体系结构/内存分层体系计算机体系结构计算机体系结构主要包括三大部分 CPU:主要完成对程序执行的一个控制。 内存:主要放置了代码以及相关的数据。 I/O设备:比如硬盘、键盘、鼠标等都属于I/O设备,它们各自有不同的功能,来配合程序发挥更大的...原创 2019-10-20 17:18:51 · 364 阅读 · 0 评论 -
清华大学操作系统公开课(一)系统启动、中断、异常及系统调用
1.操作系统的启动计算机操作系统最基本的三部分:启动大致顺序:DISK:存放OS ===> POST(加电自检):寻找显卡和执行BIOS ===> BIOS:基本I/O处理系统 ===> BootLoader:加载OS程序2.操作系统与设备和程序的交互操作系统存在的意义是向外部提供interface。主要包括三种:面向外设提供 中断...原创 2019-10-20 12:50:40 · 556 阅读 · 0 评论