华为强推306页操作系统笔记,教你如何学好操作系统
不要等待运气降临,应该去努力掌握知识。——弗兰明
前言
在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。
从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务;
从程序员的角度来说,其主要是指用户登录的界面或者接口;
如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。
事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。
如何学好操作系统呢?
如果你觉得操作系统有些难度的话,强烈推荐看一下这份笔记,它甚至可以说是对任何小白都适用。如果你能看完,就说明你有一定的基础了,可以正式入门操作系统了。
先看看脑图
由于篇幅限制就只能以截图主要内容的方式展示出来了,需要的朋友帮忙点赞文章之后直接私信【666】即可百分百免费获取!
操作系统总览
下面这些脑图是对上面的分开梳理。
第一章
你需要知道
什么是操作系统?什么是计算机系统?操作系统有什么用?操作系统满足了什么需求?什么是内核态和用户态?
计算机都有哪些硬件?它们各自的作用是什么?内存的层次模型是什么?多线程和多核芯片的关系?为什么会出现高速缓存?磁盘的构造是什么?I/O 的三种方式是什么?中断的处理过程?总线是什么?
都有哪些操作系统?
操作系统都有哪几类抽象?进程是什么?什么是地址空间?文件是什么?什么是 shell?
系统调用是什么?系统调用的分类
操作系统的结构有哪些?单体系统、分层系统、微内核、客户-服务器模式都是什么意思?
第二章
你需要知道
进程模型?进程创建的方式有几种?进程的终止方式?Unix 和 Windows 体系结构一样吗?什么是上下文切换?进程有哪几种实现?
并行和并发一样吗?
线程和进程一样吗?有了进程为什么还要有线程?什么是 POXIS 线程?线程实现有几种方式?
进程间通信有几种方式?竞态条件是什么?临界区是什么?
操作系统是如何调度的?进程有哪些行为?调度算法有哪些?调度的分类?
第三章
你需要知道
什么是无存储器抽象?
什么是有存储器抽象?什么是地址空间的概念?如何管理空闲内存空间?有哪些管理算法?
页面置换算法有哪些?页面置换算法的优劣性对比?如何选择?
什么是虚拟内存?为什么能运行比系统内存还多的程序?什么是页和页表?内存如何加载数据?页表的结构是什么?如何优化/加速分页过程?如果页表特别大,该采取哪种方式进行优化?
第四章
你需要知道
什么是文件?文件是一种抽象吗?文件的命名是怎样的?文件的结构是什么?文件有哪些类型?文件如何访问?属性是什么?文件如何操作?
什么是一级语录系统?路径名是什么?
文件系统布局是怎样的?文件系统实现有哪几种方式?inode 是什么?
文件系统的管理和优化是什么?磁盘空间是如何管理的?文件备份是什么?如何进行文件备份?
如何优化文件系统性能?
第五章
你需要知道
I/O 设备都分为哪几类?各自的优缺点是什么?什么是内存映射I/O ,它的优缺点是什么?什么是 DMA? DMA 的工作原理?什么是中断?中断有哪些分类,各自是什么意思,如何解释?
I/O 的软件目标是什么?有哪几类 I/O 方式?
I/O 层次结构如何划分?
磁盘是如何工作的?磁盘的构造?磁盘调度算法有哪些?磁盘如何处理错误?
什么是时钟?各自解释一下时钟硬件、软件和定时器?
第六章
你需要知道
操作系统是如何定义资源的?什么是可抢占资源和不可抢占资源?
死锁的模型,死锁有哪几种类型?
什么是鸵鸟算法?
死锁如何检测?通过哪几种方式恢复死锁?
如何避免死锁?
如何破坏死锁?
什么是资源死锁?除此之外还有哪些死锁方式?
如果有朋友需要以上资料,只需要点赞文章之后直接私信【666】即可百分百免费获取文档了!