我是靠谱客的博主 单薄哈密瓜,最近开发中收集的这篇文章主要介绍Operating System 笔记(1)2020-10-17Operating System 笔记(1)Chapter 1Chapter 2最后:计划与安排,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Operating System 笔记(1)

  • Operating System 笔记(1)
    • 写在前面
  • Chapter 1
    • 1.1 什么是操作系统
    • 1.2 为什么学习操作系统
    • 1.3 如何学习操作系统
    • 1.4 操作系统示例
    • 1.5 操作系统的历史
    • 1.6 操作系统结构
    • 1.7 小节
  • Chapter 2
    • 2.1 操作系统的启动
    • 2.2 操作系统的终端、异常和系统调用
      • a) 系统调用System call(来源于应用程序):
      • b) 异常Exception(来源于不良的应用程序):
      • c) 中断Interrupt(来源于外设):
      • 其他:
  • 最后:计划与安排

Operating System 笔记(1)

来自清华大学向勇、陈渝教授的操作系统网课

  • 2020年10月17日

写在前面

这是来自某大学物理系的小菜菜第一次接触计算机操作系统的有关自学内容, 欢迎各位大佬前来批评指教,今天学习操作系统网课的第一天,感觉主要学习了一些概念性的内容,这里只是简单做一些随记。同时这也是本人第一次使用CSDN的博客写一些东西,希望将来对CSDN博客的使用可以更加的频繁!话不多说,先附上第一天学习的笔记啦~

Chapter 1

1.1 什么是操作系统

  • Linux Windows Android的界面属于外核(shell),而不是内核(kernel),kernel是我们研究的重点,在shell之下
  • Kernel主要包括:
    • CPU (CPU的调度,线程),
    • 内存(物理内存的管理、虚拟内存的管理),
    • disk(一个磁盘块进行读写的磁盘->抽象出一个磁盘系统,进行文件系统管理),
    • 中断处理和io设备驱动
  • 操作系统的主要特征:
  1. 并发:可以同时跑多个程序,有一个并发管理的过程
    • 并发是在一段时间之内可以运行多个代码
    • 并行是在一个时刻可以同时运行多个代码
  2. 共享:表面上来看我们可以同时访问所有的资源,但其实在一个时间点上只有一个程序可以访问一个资源;在一个时间点上只有一个程序能够访问一个资源。(互斥共享还是同时共享需要通过具体的问题来进行区分)
  3. 虚拟: 操作系统面对的是硬件,我们将CPU虚拟化为进程,将磁盘虚拟化为文件,将内存虚拟化为地址空间,使得每一个用户感觉到自己独自拥有一台计算机,这种功能是通过操作系统完成的。
  4. 异步:在只有一个CPU的情况下只有一个系统能跑,因此程序将会出现“走走停停”的情况。如果程序运行前的环境相同,那么程序的输出应该相同。(也即应该保证结果正确。)

1.2 为什么学习操作系统

  • 我们认为操作系统是一门比较综合的课程,需要掌握一定编程的基础,并且需要掌握数据基础和算法的有关内容;比一般的系统要复杂一些
  • 通过学习操作系统,我们对于复杂程序将会有更深的理解。
  • 我们已经有了一些现成的操作系统,但是学习操作系统是一个很酷的东西,它涉及一些需要很强能力的东东。
    • (这里我给你一个任务,想办法给出一个适用于量子系统的操作系统,我觉得这可能是一个比较有前景的交叉方向,但是不知道有没有前人已经做过这个东西,而这个或许可以和你小说的创作结合起来@《六重奏——童话之弦》)
  • 希望你能够通过这门课把一些东西结合起来。并且看一看实验环节的部分。
  • 站在技术发展的角度来说,计算机是科学研究的基石之一,说明操作系统是一个很有用的,值得去挑战的领域。当前顶尖的一些大学,例如MIT,Harvard,Berkley等等都在操作系统层面投入了大量的人力和物理,例如Google当中有大量的人进行操作系统的…. 使得整一个搜索引擎用起来更加爽快。并且可以发期刊!!
  • 顶级会议1: SOSP(每两年开一次)
  • 顶级会议2: USENIX(每两年开一次)
  • Linux操作系统:一共4500 0000行……
    • 操作系统代码必须是高效的,给框架思路设计提出了更高的要求,操作系统出错,意味着系统崩溃….(操作系统是系统安全的基础)
    • 进程调度现在已经不再成为一个需要关注的点了,因为一些内容已经可以由硬件进行实现
    • 操作系统需要权衡:空间和时间,性能和可预测性,公平和性能(资源被公平而高效的使用)
    • 硬件方面,操作系统需要:良好的硬件管理;合理的资源分配,硬盘速度和CPU、内存相差很多,操作系统需要进行协调。

1.3 如何学习操作系统

  • 实践: coding和阅读代码的工作,听到的容易忘记,看到的我能记住,只有做过的才永志不忘。听听课做做作业基本上可以,但是如果想要有更加深入的了解,我们还需要一些实验上面的做法。

1.4 操作系统示例

  • UNIX家族: BSD操作系统(为了让玩游戏更加方便,于是写了一个操作系统….)
  • LINUX:因为没有好用的环境,于是重新写了一个操作系统….(这人还活着,一天到晚指点江山2333)
  • WINDOWS

1.5 操作系统的历史

  • 早期系统使用纸带传输程序和数据,操作系统只能够使用纸带传输数据。
  • CPU等硬件快速发展,能够进行流水调度,此时已经有了并发的感觉
  • CPU的容量越来越大之后,CPU可以执行多个程序
  • 后来有了中断的操作
  • 后来有了分时系统,让每个人都有一种独立拥有了一台计算机的假象(为什么能够打断程序的运行?因为时钟会定时的打算程序,使得操作系统能够进行控制和调度)
  • 80年代:硬件的价格下降很快,同时内存提升(摩尔定律),此时操作系统随之发生变化。个人电脑(PC)出现,多核多处理方式出现,出现了分布式操作系统。

1.6 操作系统结构

  • 太懒没记

1.7 小节

  • 太懒没记either…

Chapter 2

2.1 操作系统的启动

  • DISK:存放OS
  • BIOS: 基本I/O处理系统(basic Input Output System)
  • CS:IP = 0xf000:fff0(CS:段寄存器;IP:指令寄存器)

2.2 操作系统的终端、异常和系统调用

a) 系统调用System call(来源于应用程序):

  • 应用程序主动向操作系统发出服务请求
  • 这是程序主动提出的请求,例如打开文件,关闭文件,发送网络包等等
  • 应用程序只需要按照相应的接口进行执行
  • 处理时间:异步(程序返回的时间是异步的,也就是说程序不知道系统什么时候能够返回这一些数据)或同步(程序当中要求的调用等)
  • 响应:等待或者持续
    • 硬件的响应:有一个系统调用接口,使得操作系统为应用程序提供各种各样的操作。一个C程序的例子:
printf("hello world")
  • 触发write系统调用,表达需要通过某个硬件进行显示,以及需要显示的信息。
    • 软件的响应:

b) 异常Exception(来源于不良的应用程序):

  • 非法指令或者其他坏的处理状态(如:内存出错)应用意想不到的行为
  • 被动
    • 例如:程序当中的除0操作
    • 例如:越过另外的程序访问地址空间
    • 例如:执行过程当中没有满足应有的执行条件(要求操作系统能够应对各种意外事件)
  • 处理时间:同步(运行到某个地方一定会产生)
  • 响应:相应杀死或者重新执行意想不到的应用程序指令
  • 硬件的响应:操作系统同样需要对程序进行。有的时候操作系统可以弥补,有的时候不能够恢复。操作系统会要求程序重新执行某一条指令,如果没有问题,那么就可以继续进行程序的运行。
  • 软件的响应:同样需要保存现场,以便于后面恢复

c) 中断Interrupt(来源于外设):

  • 来自不同的硬件设备的计时器和网络的中断

  • 网卡,声卡,显卡,键盘,鼠标的移动……

  • 处理时间:异步(不知道什么时候会产生,不可预测)

  • 响应:持续,对用户应用程序是透明的

  • 硬件的响应:产生一个标记,由外设产生。CPU通过标记确定中断号,也就是返回为什么会产生这个中断,然后交给操作系统。(中断号,中断表,表现出中断对应代码的起始地址,从而需要将程序跳转到相应的地方)-

  • 软件的响应 :通过一定的方式保存运行的信息,从而当操作系统处理完问题以后,可以继续运行程序(一般对程序透明)

其他:

  • 在计算机运行当中,内核是被信任的第三方,只有内核可以执行特权指令,同时方便了应用程序。
  • 跨越操作系统边界产生的额外开销
    • 建立中断、异常、系统调用号与对应服务历程映射关系的初始化开销
    • 建立内核堆栈(数据的拷贝存在开销,不能够简单传递指针)
    • 验证参数
    • 内核态映射到用户态的地址空间,更新页面映射权限
    • 内核态独立地址空间

最后:计划与安排

  • 准时参加迎新跑,考虑到现在已经是凌晨00:41分,希望你明天还能够准时从床上爬起来…
  • 完成操作系统第三章有关内容的自学,阅读github相关代码
  • 完成普通物理实验刚体转动相关的实验报告
  • 完成《经典电动力学》第一章有关推导
  • 完成理论力学以及电动力学课内的作业
  • 背一点GRE的单词
  • 晚上别忘了参加极客俱乐部的第一次活动,学习3D打印

预祝这是一个充实快乐的周六!!

最后

以上就是单薄哈密瓜为你收集整理的Operating System 笔记(1)2020-10-17Operating System 笔记(1)Chapter 1Chapter 2最后:计划与安排的全部内容,希望文章能够帮你解决Operating System 笔记(1)2020-10-17Operating System 笔记(1)Chapter 1Chapter 2最后:计划与安排所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部