参考视频:蒲晓蓉 《电子科大操作系统原理50讲》,很赞的入门视频。
操作系统,这是一个很大的东西,枯燥而又难以理解。但是,我想任何一名IT程序员,都会想要拿下,甚至是自己写个操作系统跑一跑,那是何等的成就感。可惜,没有这样的时间和尽力了,那就听听老师的讲解吧。站在姚明的肩膀上,小四也会有两米多!
计算机系统资源
分为软件资源和硬件资源
软件资源:系统软件(操作系统及实用程序)和应用软件。
实用程序,比如编译程序、运行环境等工具类东西,属于基础设施
应用程序,就是各种应用软件
硬件资源:CPU、存储器、外设(输入输出设备)、系统总线等。
什么是操作系统
(1)用户环境观点
操作系统提供了系统调用,作为程序接口给应用程序调用,也就是说封装了很多API,去控制硬件的运作
(2)虚拟机器观点
硬件的整合扩充,实现了硬件不能实现的功能,同时又拓展了计算机数量,比如多用户登陆。
(3)资源管理观点
充当了管理协调员,实现多进程多任务,各硬件协作运行。
(4)作业组织观点
组织、协调作业的运行,体现为进程管理。
总结:操作系统是计算机系统中的一个系统软件,管理和控制计算机系统中的硬件和软件资源,合理组织计算机的工作流程,以便有效利用这些资源为用户提供一个功能强、使用方便的工作环境,从而在计算机与用户之间起到接口的作用。
其实没有那么深奥和神秘啦,简单地说就是提供了系统调用接口、封装控制硬件、进程管理。
操作系统的发展
1. 单道批处理系统
1.1 手工装载作业到输入磁带,磁带是顺序的。
1.2 批处理程序顺序地读取输入磁带中的作业,执行后将结果输出到输出磁带
1.3 输入磁带处理完成,就重新装新作业,又顺序执行。
缺点:任意时刻只允许一个作业在内存,资源利用率和吞吐量低
2. 多道批处理系统
多道:允许多个程序同时存在内存,按照某种原则分派处理机。输入输入等待时,切换程序。
批处理:用户提交的作业首先在外存排队,然后由作业调度程序按照一定算法选取一个或多个作业装进内存执行。
3. 单道分时系统
单道:每次内存只有一个程序,为了减少磁盘IO,每次切换时只替换覆盖部分,不用覆盖的部分则保留。每次都要将程序调入调出,
分时:时间片轮转,每个程序执行一段时间。没有优先级
4. 前后台系统
前台:存放按时间片调入调出的作业流,适用优先级高、响应时间要求高、运行时间短的作业
后台:存放批处理作业,仅当前台无作业运行时,运行批处理作业。适用优先级低、运行时间长的作业,有了优先级
5. 多道分时系统
多道:多个作业存在于内存,减少了调入调出开销
操作系统的任务
1. 接口功能
2. 处理机管理
进程控制
进程同步
进程通信
进程调度
3. 存储器管理
内存分配:静态分配/动态分配、连续分配/非连续分配
内存保护:系统内存空间、用户内存空间
地址映射:逻辑地址-->物理地址
内存扩充:“虚拟存储技术
4. 设备管理
缓冲管理:输入输入先到缓冲区,解决IO设备和CPU的速度问题
设备分配
设备处理
虚拟设备功能
RAID技术(阵列、数据安全性)
磁盘调度
5. 文件管理
现代主流操作系统
1. Windows
多任务操作系统,
2. UNIX
由C语言编写的多用户多任务操作系统,安全性移植性好(因为用C写,相比汇编语言针对各种CPU,C语言的标准库函数是很多编译器支持的,因此只需要用相对应的编译器重新编译代码即可,而不需要改写代码)。
3. Linux
UNIX的变种
多用户、多任务、分页式虚拟存储、动态链接库、动态调整文件系统缓冲区大小等功能
网络功能强大