目录
1.本课程的内容
2.操作系统的课程实验
3.预备知识
掌握C语言和X86的汇编.
汇编在不同的平台上是不一样的,C在不同的平台上几乎是一样的.
所以说C语言比X86有更好的可移植性.
4.什么是操作系统
把CPU虚拟化成进程
把磁盘虚拟化成文件
把内存虚拟化成地址空间
5.操作系统层次结构
6.硬件资源和Kernel的组件
硬件资源最主要三大块:
1.CPU
2.内存
3.磁盘
另外目前还有:
网卡,声卡,显卡等.
7.操作系统的特征
8.为什么要学习操作系统
9.操作系统的挑战在哪里
课本里的知识是落后于当前业内的研究的,比如说进程调度和I/O管理很多都由硬件
都可以直接完成需求了.我们需要站在更高的角度看OS,需要作出权衡.需要关注硬件,
需要关注系统级的平衡.
10.如何学习操作系统
11.操作系统实例
11.1 UNIX&BSD
BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州
大学伯克利分校开发和发布的。历史上, BSD曾经被认为是UNIX的一支——"BSD UNIX", 因为它和AT&T UNIX
操作系统共享基础代码和设计。在20世纪80年代,衍生出了许多变形的UNIX授权软件。比较著名的如DEC的
Ultrix及Sun公司的SunOS。1990年代,BSD很大程度上被System V4.x版以及OSF/1系统所取代,晚期BSD版
本为几个开源软件开发提供了平台并且一直沿用至今。今天,“BSD”并不特指任何一个BSD衍生版本,而是
类UNIX操作系统中的一个分支的总称。
11.2 Linux家族
11.3 Windows家族
桌面系统:windows是绝对的霸主;
智能终端和服务器领域:linux占一定的统治地位.
还有很多其他的操作系统,比如说:
实时操作系统,
面向巨型机的操作系统,
面向具体应用的操作系统,
...
12.操作系统的历史和演变历史
操作系统的发展下面两点有紧密的联系:
(1)硬件及系统结构的发展;
(2)应用需求;
第一阶段,没有操作系统,操作系统只是起到监视器和装载器的作用,程序通过纸带机传到计算机系统中去,
计算机计算好了之后通过打印机或者纸带机再输出出来,整个过程由操作员来完成,当时说,既然这个过程单
调且重复,尝试着用计算机软件自己完成,整个过程是串行的.是一个机械的简单的单用户处理过程,体现不
出操作系统的特征.
CPU等快速发展,计算机速度得到提升,性能未得到充分利用.
第二阶段,批处理阶段.此时已体现出操作系统的并发特性.
第三阶段,多道程序设计阶段,内存越来越大,内存中可一次性放多个程序,不用每次跑一次将执行代码加载
到内存中一次,CPU执行多个程序.先执行在内存中的第一个程序,再执行内存中的第二个程序...这个执行的
过程不用将第二个程序及之后的程序从外部导入到内存中来,这样就大大减小了I/O的开销,速度会得到进一
步提高.这样使得CPU的使用率得到的提升,CPU得以足够地忙;另外,为了进一步提高效率,当一个程序执行到
一个阶段之后,必须要等待一个I/O执行完毕,而I/O的执行效率远远低于CPU的执行效率,所以我们可以利用
等待时间让其他的程序去执行,更加充分地使用CPU,这个也是多道程序设计的一个特点.
第四阶段,为了与用户拥有更好的交互,出现了分时系统.造成每个人都独占一个计算机的错局,使得人与
计算机交互更好.时间片是千分之一秒(这个有保存在哪里吗?).这里的时钟中断是由外设时钟产生的,
时钟会定期产生中断把控制权交给操作系统,让操作系统来完成切换的过程,这时这个中断起了很重要的
作用,它帮助我们的操作系统完成分时调度的工作.
随着CPU,晶体管以及集成电路的进一步发展,电脑越来越小,集成度越来越高,性价比越来高,PC机出现
了.应用越来越多.这也是微软从早期的字符方式变成GUI方式.使得操作起来更加简单方便.PC机操作系
统最主要的功能是使得I/O交互更加方便.
两个趋势:
一个CPU里面可以集成多个核心,多核多处理;
网络的发展,出现了分布式的操作系统.
操作系统如何应对趋势:
松,紧耦合系统;
13.操作系统的结构
MS-DOS,单体,简单,没有相应的模块化,没有分层,没有保护,当时内存只有640K,在8086机器上;
受限于硬件,无法做扩展和模块化的设计.
早期,处理PC机,会有一些面向科学计算的服务器,这种机器就有比较好的硬件设施,Unix当时就用于服务器
计算,所以它会有更大的空间用于设计,设计出分层,模块等设计.
汇编与具体机器绑定,无可移植性;
C语言与具体机器无关,具有很好的一致性.
图灵奖和美国总统奖.
uCore模仿的是单体的模块化的系统设计.
微内核,处理消息传递和中断都放在内核外,虽然松耦合,但是性能低.产业内目前还很少用微内核,性能
问题始终米有解决.
外核,希望内核分成两块,一块与硬件打交道,完成硬件功能的复制,另一块是libos,与具体应用打交道,
比如说有个应用bloser,这个bloser有一个专门面向bloser的libos,可以称为bloser-libos,这个
bloser-libos再去访问exterkernel,然后再去访问硬件.这个设计的好处就是速度快,因为有os一大部分
功能是和具体的应用紧密结合,应用和os是紧耦合,使得速度更快.同时通过exterkernel薄薄的一层完成
硬件的隔离.目前还是主要在学术界.
另外VMM(virtual Machine monitor),监控系统行为是虚拟机系统的核心任务监控系统可用于调度任
务、负载均衡、向管理员报告软硬件故障,并广泛控制系统的使用情况.VMM虚拟出完整的计算机并且
实施监控.有了VMM之后一台计算机可以变成多台计算器,可以将硬件资源过剩的硬件分割给多个人服务.
充分利用.