操作系统学习笔记 1概述
200 Words|Read in about 1 Min|本文总阅读量次
感觉在学习Android系统的过程中,越来越发现自己的计算机相关基础比较薄弱。新开一个篇章记录学习操作系统,纸上得来终觉浅,还是需要不断学习。
0猜你喜欢
操作系统系列文章
1.1课程内容
- 基本概念及原理
- 操作系统介绍
- 中断及系统调用
- 内存管理
- 进程及线程
- 调度
- 同步
- 文件系统
- I/O 子系统
通过在uCore操作系统上做实验
https://github.com/chyyuu/os_course_info
https://github.com/yusong-shen/mooc_os_lab
操作系统实验
- 实验0:准备
- 实验1:系统启动及中断
- 实验2:物理内存管理
- 实验3:虚拟内存管理
- 实验4:内核线程管理
- 实验5:用户进程管理
- 实验6:CPU调度
- 实验7:同步与互斥
- 实验8:文件系统
1.2什么是操作系统
- 从用户角度上,操作系统是一种控制软件
- 管理应用程序
- 为应用程序提供服务
- 杀死应用程序
- 资源管理
- 管理外设、分配资源
1.2.1操作系统架构层次
在于硬件之上,在应用程序之下。
操作系统位于应用软件之下(办公软件或者是视频播放软件),为应用软件提供服务支撑。
LInux、WIndows、Android界面属于shell,而不是内核(Kernel),内核使我们的研究重点,在shell之下。
1.2.2硬件资源最主要的三大块
CPU,内存,磁盘。
其他还有,声卡,网卡,显卡
1.2.3操作系统内部组件
- CPU调度器
- 物理内存管理
- 虚拟内存管理
- 文件系统管理
- 中断处理与设备驱动
1.2.4OS Kernel特征
- 并发
计算机系统中存在多个运行的程序,需要OS管理和调度
- 共享
“同时"访问,互斥共享
- 虚拟
利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
- 异步
程序的执行不是一贯到底,而是走走停停,向前推荐的速度不可预知。但只要运行环境相同,OS需要保证程序运行的结果也要相同。
并行是一个人边看书边听音乐,并发是一个人先看书,在听音乐,两件事不能同时
1.3为什么要学习操作做系统
结合许多不同的课程:程序设计语言,数据结构,算法,计算机体系结构,材料,操作系统概念和原理,源代码,技能,操作系统的设计和实现。
虽然目前已经有喝多操作系统,windows,linux。但是操作系统还在不停地发展,在工控等各种领域有强烈的需求。操作系统很酷,很有用,有挑战。
1.3.1操作系统:计算机科学研究的基石
- 计算机系统的基本组成部分
- 有硬件的发展和应用需求所驱动
- 学术和工业的持续发展
1.3.2关于操作系统顶级会议
- SOSP(每两年,1967…)
- USENIX(每两年,1994…)
1.3.3操作系统特点
-
操作系统很大
windows XP有4500w行,代码量巨大,不可能完全掌握。目标是理解其核心内容。
-
操作系统管理并发
并发导致有趣的编程挑战
-
操作系统代码管理原始硬件
时间依赖行为,非法行为,硬件故障
-
操作系统必须是高效的
低耗CPU、内存、磁盘的
-
操作系统出错,就意味着机器出错
操作系统必须比用户程序拥有更高的稳定性
-
操作系统是是系统安全的基础
1.3.4操作系统需要权衡
- 空间与时间
- 性能和可预测性
- 公平和性能
1.3.5硬件方面,操作系统需要
- 良好的硬件管理
- 合理的资源分配
- 例如:硬盘速度跟CPU、内存相差很多,操作系统需要协调处理。
1.4如何学习操作系统
- 我听到的我会忘记
- 我看到的我能记住
- 只有我做过的我才理解
1.5操作系统实例
- UNIX BSD(伯克利软件发行版)
- Linux家族
- Windows家族
1.6操作系统的历史
1.6.1早起计算机使用织带机传输程序和数据
操作系统只起到加载作用
1.6.2CPU等硬件快速发展,计算机速度得到提升,性能未得到充分利用。
1.6.3内存的容量越来越大,CPU执行多个程序
1.6.4为了更好地利用计算机资源,并且更好地和用户交互,出现了分时系统。
1.6.5个人电脑操作系统
1.6.6网络的快速发展,出现了分布式的操作系统
1.6.7松、紧耦合系统
1.7操作系统的结构
1.7.1比如有分层的结构
1.7.2比如用于实验的uCore操作系统
1.7.3学术界存在另一种更加极端的架构,“外核”
1.7.4VMM,跑在传统的OS之下
VMM将单独的机器接口转换成很多的幻象,每个这些接口(虚拟机)是一个原始计算机系统的有效副本,并完成所有的处理器的指令。
无虚拟机和虚拟机区别
1.8小结
主要包括什么是操作系统,为什么学习操作系统,如何学习操作系统,操作系统实例,操作系统的演变,操作系统结构。