NJUOS-1-操作系统概述

本文最后更新于:1 年前

Welcome to NJU’s Operation System by JYY,多学点操作系统准没错!

本期操作系统内容的回顾,我自己主要围绕三个方面展开:

  1. 哈工大李治军的OS
  2. 南大蒋炎岩的OS
  3. 小林Coding上操作系统的专题 + 各种面经
  4. CMU 15-445数据库课程
  • 上面这些内容应该能把我自己对于操作系统的理解再加深一步了

操作系统概述

  • Academic Integrity:
    • 不上传代码到互联网
    • 主动不参考别人完成的实验代码
    • 不使用他人测试用例

有些行为可能会让你得到分数,但失去应有的训练 -> 良心不痛就成功了哈哈哈哈

为什么要学操作系统:

  • 编程力量的觉醒,每天用的东西写不出来的…甚至原理都不了解…
  • 操作系统的实现,为上层提供了什么接口。

什么是操作系统:

  • A body of software, in fact, that is responsible for making it easy to run programs
  • All is programs -> 举例性质,自己去悟
  • 国内定义:管理软硬件资源,为程序提供服务的程序。

啥是操作系统

操作系统是如何发展的?硬件,软件,操作系统

  • 1950s,内存很小,一次一个任务。CPU贵,但是没有办法,单批次执行任务,一个一个任务执行。(计算机很贵很贵) -> 单批次处理系统

  • 1960s,内存大了,多个任务可以放入内存中 -> OS可以进行调度,更加充分利用CPU资源,充分榨干CPU的能力。(计算机也是很贵很贵) -> 多批次处理系统

image-20221207152104606

  • 同时将多个程序载入内存是一项巨大的能力:
    • 有了进程(process)的概念
    • 进程在执行I/O时,可以将CPU让给另一个进程:
      • 在多个地址空间隔离的程序之间切换(地址空间隔离避免了程序bug导致误操作别的程序的情况)
      • 虚拟存储使一个程序出现bug不会crash整个系统
  • 操作系统中自然增加了进程管理的API
  • 1970s+,既然能够对任务进行调度,是不是可以用时间来进行调度呢?基于中断的想法出现

image-20221207153004259

  • 基于中断(例如时钟中断)机制
    • 时钟中断:程序在执行时,异步插入函数调用
    • 由操作系统(调度策略)决定是否要切换到另一个程序执行
    • Multics(MIT, 1965):现代操作系统诞生
  • 到了这个阶段,从技术层面,就已经和我们现代操作系统接近了昂! -> 诞生了很多的系统
  • 今天的操作系统
  • 空前复杂的系统之一:
    • 更复杂的处理器和内存
      • 非对称多处理器
      • Non-uniform Memory Access(NUMA)
      • 更多硬件机制 Intel-VT
    • 更多的设备和资源:
      • 网卡,SSD,GPU,FPGA…
    • 复杂的应用程序和应用环境:
      • 服务器,电脑,手机,手表,IoT…

操作系统的根本问题

image-20221207154116630

成为合格的操作系统用户

  1. 称为Power User

image-20221207154331814

  1. 学会写代码

image-20221207155506868

image-20221207155906184

谢谢,Robert Morris也友情参演了MIT 6.824…,太牛了orz

image-20221207160028703

命令学习

  1. name -a
1
2
~  $ uname -a
Darwin AlexdeMacBook-Pro.local 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:17:10 PDT 2022; root:xnu-8020.140.49~2/RELEASE_X86_64 x86_64
  1. man tar -> 查询某个命令的运用

  2. tldr命令(recommandation)

tldr命令安装:https://blog.csdn.net/qq_37768971/article/details/114845695

  1. python查看手册
1
python3 -m 库

image-20221207155323686

References

  1. video: https://www.bilibili.com/video/BV1Cm4y1d7Ur/?spm_id_from=333.999.0.0&vd_source=ff957cd8fbaeb55d52afc75fbcc87dfd
  2. Books:
    • Remzi’s Operating Systems: Three Easy Pieces
    • CSAPP

NJUOS-1-操作系统概述
https://alexanderliu-creator.github.io/2022/12/07/njuos-1-cao-zuo-xi-tong-gai-shu/
作者
Alexander Liu
发布于
2022年12月7日
许可协议