本次笔记内容:
1.1 课程概述
1.2 什么是操作系统
1.3 为什么学习操作系统

文章目录

  • 课程概要
  • 纲要
  • 实验工具
  • 预备知识
  • 操作系统
    • 什么是操作系统?
    • 操作系统包含什么
    • OS Kernel的特征:
  • 学习操作系统的意义

课程概要

资源站点: Bilibili 【清华大学】操作系统 陈渝 全113讲 av33394011
教师信息: 陈渝 清华大学

纲要

本课程学习什么?

  • 基本概念及原理
  • 操作系统介绍
  • 中断及系统调用
  • 内存管理
  • 进程及线程
  • 调度
  • 同步
  • 文件系统
  • I/O 子系统

实验工具

在uCore操作系统上做实验:github.com/chyyuu/ucore_os_lab

操作系统实验:

  • 实验0:准备
  • 实验1:系统启动及中断
  • 实验2:物理内存管理
  • 实验3:虚拟内存管理
  • 实验4:内核线程管理
  • 实验5:用户进程管理
  • 实验6:CPU调度
  • 实验7:同步与互斥
  • 实验8:文件系统

预备知识

  • 计算机结构原理(Intel 80386+)
  • 数据结构
  • C和汇编语言

操作系统

什么是操作系统?

用户角度: 操作性是一个 控制软件

  • 管理应用程序;
  • 为应用程序提供服务;
  • 杀死应用程序

对内角度: 操作系统用于资源管理

  • 管理外设、分配资源

操作系统是硬件之上、应用程序之下的层次结构。
操作系统位于应用软件之下,为应用软件提供服务支撑。

Linux、Windows、Android界面属于外壳(Shell),而不是内核(Kernel)。
Kernel是我们研究的重点。

Shell可以理解为操作系统对外的接口,比如Windows的GUI,也有命令行类型的Shell。

操作系统包含什么

硬件资源三大块:CPU、内存、磁盘。

CPU: CPU调度、进程线程
内存: 物理内存管理虚拟内存管理(在有限物理内存之上为应用提供内存)
文件系统: disk过于底层,不方便上层应用。
中断处理与设备驱动: 驱动实现操作系统。

OS Kernel的特征:

1.并发

  • 并发:在一段时间内多个程序运行;
  • 并行:在一个时间点上共同运行(因此只有一个CPU无法完成并行

2.共享
是“同时”访问还是互斥共享,根据情况而定。

3.虚拟
利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务。

4.异步

  • 程序执行不是一贯到底,而是走走停停,向前推进速度不可预知;
  • 但只要运行环境相同,OS需要保证程序运行的结果也相同。

学习操作系统的意义

操作系统是一门综合课程,包含:

  • 程序设计语言
  • 数据结构
  • 算法
  • 计算机体系结构

操作系统还在不停地发展、在工控等各种领域 有强烈的需求。

USENIX、CCF(国内)等组织在开展操作系统的研究。

如何关注操作系统的研究:

  • 顶级会议:SOSP、USENIX

操作系统很大:Windows XP有4500多万行;
操作系统是并发的,很有挑战性;
操作系统要能够应对非法操作、硬件故障;
操作系统必须是可靠高效的。

操作系统在发展,比如I/O已经不需要操作系统管理,而是交给硬件进行。

操作系统需要权衡:

  • 空间与时间
  • 性能和可预测性
  • 公平和性能

硬件方面,操作系统需要:

  • 良好的硬件管理
  • 合理的资源分配
  • 比如:磁盘速度与CPU、内存差很多,操作系统需要协调处理

【操作系统/OS笔记01】课程概要、什么是操作系统相关推荐

  1. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)--hello bitzhuwei's OS! 最初的OS代码 1 ; hello-os 2 ; TAB=4 3 4 ORG 0x7c00 ; 指明程序的 ...

  2. 【操作系统/OS笔记08】进程的定义、组成、PCB、生命周期管理、状态变化模型、挂起模型

    本次笔记内容: 7.1 进程的定义 7.2 进程的组成 7.3 进程的特点 7.4 进程的控制结构 7.5 进程的生命期原理 7.6 进程状态变化模型 7.7 进程挂起 文章目录 进程的描述 进程(p ...

  3. 【操作系统/OS笔记02】操作系统的历史、操作系统结构

    本次笔记内容: 1.4 如何学习操作系统 1.5 操作系统的实例 1.6 操作系统的历史 1.7 操作系统结构 1.8 小结 文章目录 操作系统的大概分支 操作系统的历史和演变过程 操作系统结构 微内 ...

  4. 【操作系统/OS笔记15】死锁的系统模型,死锁的处理办法,银行家算法与死锁检验算法

    本次笔记内容: 11.1 死锁问题 11.2 系统模型 11.3 死锁特征 11.4 死锁处理办法 11.5 死锁预防和死锁避免 11.6 银行家算法 11.7 死锁检测和死锁恢复 文章目录 死锁问题 ...

  5. 操作系统OS笔记(未完)

    硬件所做的事情 1.产生某种标记,比如中断标记 2.cpu得到这种标记后就会找到对应的中断处理然后告知操作系统 软件(操作系统) 1.保存当前程序状态,比如当前寄存器数据等等,以便中断结束后恢复 2. ...

  6. 【操作系统/OS笔记20】打开文件、文件数据块分配、空闲空间管理、多磁盘管理(RAID)、磁盘调度算法概述

    本次笔记内容: 12.12 打开文件的数据结构 12.13 文件的分配 12.14 空闲空间列表 12.15 多磁盘管理-RAID 12.16 磁盘调度 文章目录 打开文件 何谓"打开文件& ...

  7. 【操作系统/OS笔记16】进程间通信(IPC),直接/间接通信与阻塞/非阻塞通信,信号,管道,消息队列,共享内存

    本次笔记内容: 11.8 IPC概述 11.9 信号.管道.消息队列和共享内存 文章目录 进程间通信(Inter-Process Communication, IPC)概述 为什么要进程间通信? 直接 ...

  8. 【操作系统/OS笔记13】信号量、PV操作、管程、条件变量、生产者消费者问题

    本次笔记内容: 10.1 背景 10.2 信号量 10.3 信号量的使用 10.4 信号量的实现 10.5 管程 文章目录 信号量的提出背景 信号量(semaphore) 信号量数据类型 信号量类似铁 ...

  9. 【操作系统/OS笔记10】进程/线程的调度原则、调度算法、实时调度、多处理器调度、优先级反转

    本次笔记内容: 8.1 背景 8.2 调度原则 8.3 调度算法1 8.4 调度算法2 8.5 实时调度 8.6 多处理调度与优先级反转 文章目录 CPU调度背景 上下文切换 CPU调度 在进程/线程 ...

最新文章

  1. 2021年大数据Hive(九):Hive的数据压缩
  2. Pycharm那些隐藏的实用小技巧,太强了
  3. 再见,数据库!MySQL千亿数据分库分表架构,堪称惊艳!
  4. 深度剖析http协议(一)
  5. Android Device Monitor 文件管理的常见问题 - z
  6. SAS编程基础 - 逻辑库和数据集
  7. 企业联合体的形式_母公司是否可以用子公司资质进行投标,且不以联合体的形式?...
  8. 程序员应该如何更有效率
  9. 借助 Subversion 进行版本控制
  10. 03.body_search
  11. 新手学习嵌入式需要掌握的几点知识点
  12. Apache安装及jboss部署说明文档1
  13. orm框架有哪些_.net core 基于Dapper 的分库分表开源框架(coredata)
  14. python报错: list object has no attribute shape的解决
  15. python11.12
  16. 联盟平台开屏广告收入大减,APP开发者应如何应对?
  17. [量子客]4月全球量子计算发展内参
  18. EDA笔记(4)--语言要素
  19. office2013
  20. 1044 mysql_MySQL 常见错误 ERROR 1044

热门文章

  1. 【Hive】多字符分隔
  2. Web服务的性能,和BCrypt性能问题的解决方法
  3. Jenkins中的一些问题解决(~~不断更新~~)
  4. 主机和虚拟机复制粘贴失效的解决方案
  5. 解决Vue的表格中,expand只有某些行需要展开的问题。
  6. 消费者启动,允许期间报task supervisor timed out 异常,解决
  7. mount: block device /dev/cdrom is write-protected, mounting read-only 解决方法
  8. mysql中文显示问号,不能识别中文的解决方案
  9. 记一次网站无法访问解决过程,服务器80端口问题解决过程
  10. 在Java中从字符串中删除空格