Operating System 笔记(1)
Operating System 笔记(1)
来自清华大学向勇、陈渝教授的操作系统网课
- 2020年10月17日
写在前面
这是来自某大学物理系的小菜菜第一次接触计算机操作系统的有关自学内容, 欢迎各位大佬前来批评指教,今天学习操作系统网课的第一天,感觉主要学习了一些概念性的内容,这里只是简单做一些随记。同时这也是本人第一次使用CSDN的博客写一些东西,希望将来对CSDN博客的使用可以更加的频繁!话不多说,先附上第一天学习的笔记啦~
Chapter 1
1.1 什么是操作系统
- Linux\ Windows\ Android的界面属于外核(shell),而不是内核(kernel),kernel是我们研究的重点,在shell之下
- Kernel主要包括:
- CPU (CPU的调度,线程),
- 内存(物理内存的管理、虚拟内存的管理),
- disk(一个磁盘块进行读写的磁盘->抽象出一个磁盘系统,进行文件系统管理),
- 中断处理和io设备驱动
- 操作系统的主要特征:
- 并发:可以同时跑多个程序,有一个并发管理的过程
- 并发是在一段时间之内可以运行多个代码
- 并行是在一个时刻可以同时运行多个代码
- 共享:表面上来看我们可以同时访问所有的资源,但其实在一个时间点上只有一个程序可以访问一个资源;在一个时间点上只有一个程序能够访问一个资源。(互斥共享还是同时共享需要通过具体的问题来进行区分)
- 虚拟: 操作系统面对的是硬件,我们将CPU虚拟化为进程,将磁盘虚拟化为文件,将内存虚拟化为地址空间,使得每一个用户感觉到自己独自拥有一台计算机,这种功能是通过操作系统完成的。
- 异步:在只有一个CPU的情况下只有一个系统能跑,因此程序将会出现“走走停停”的情况。如果程序运行前的环境相同,那么程序的输出应该相同。(也即应该保证结果正确。)
1.2 为什么学习操作系统
- 我们认为操作系统是一门比较综合的课程,需要掌握一定编程的基础,并且需要掌握数据基础和算法的有关内容;比一般的系统要复杂一些
- 通过学习操作系统,我们对于复杂程序将会有更深的理解。
- 我们已经有了一些现成的操作系统,但是学习操作系统是一个很酷的东西,它涉及一些需要很强能力的东东。
- (这里我给你一个任务,想办法给出一个适用于量子系统的操作系统,我觉得这可能是一个比较有