操作系统概述(发展,特性,功能)

引论

在这里插入图片描述

主要记录一下操作系统概论,包括它的发展历程以及基本的功能特性。这些基本功能特性都会在后续展开。

了解操作系统的发展历史,有助于理解现代操作系统中的一些功能特性。

1. 发展过程

操作系统的出现是为了更好的服务计算机操作。最初的计算机系统并没有操作系统,没有程序来控制计算机的执行,一切都是人工执行。人为地把处理纸带插入,进行运算。后面为了提高操作效率,使用了脱机IO的方法,弄一大堆纸带排队,按顺序一个一个弄。相当于弄了个缓存空间,存放待运行的纸带。

后来为了偷懒,实现了第一个操作系统——单道批处理系统,处理方法和人工的脱机IO差不多,只不过不需要人工。

而后,为了提高处理效率,因为计算机性能很强,但是单道批处理系统用不完,相当于一条路十米宽,但是只是单行道,那不浪费吗?所以这条十米宽的路开辟成一个双行道,大大提升了处理效率。

后面又有别的需求。因为电脑很贵,一个人买不起,通常要和别人拼单。但是有时候会有矛盾,就和上厕所一样,一个房间就一个厕所,当有人在开大的时候你肯定不能进去,但是你只是想小便,很快的,却要等很久,那你心生不满。于是设计出一个分时系统,每个用户占用该计算机一段时间,用完了给别人用,待会你再用。

同时有一种特殊的需求,有的人急性子,希望计算机能马上给我反馈,你说分时系统,我提交个任务半天不回,这不行。于是开发出实时系统,更合理的叫及时系统。

1.1 无操作系统

1.1.1 人工操作

1)使用

当计算机诞生后,还没有出现管理计算机资源的操作系统,这个时候使用计算机都是人工操作,当想执行什么指令,就把它写到一个纸带上,然后把纸带插进电脑里,然后就开始执行了。

2)优缺点

这个最原始的使用方式没有什么优点,硬要说优点,那最大的优点就是能用。反倒是有很多不足的地方。

第一,利用效率低。因为计算机运行是很快的,但是人工传纸带好慢的,计算机资源肯定利用不完。最重要的是,当时一个学校都不一定有一台电脑,而且一次只能一个人用,还如此繁琐,大大浪费了资源。

后面呢,就做了一点改进。

1.1.2 脱机IO

现在升级了,可以好几个人排队,把要执行的指令任务先放到缓存区(硬盘),这样呢,我们宝贵的计算机资源就会不断执行纸带中的指令。执行完成后,会告诉执行者执行结果,还算是提高了利用率。

1.2 单道批处理

第二代晶体管的出现,使得计算机性能大大提高。

后面就有人写了一个简单的操作系统,这个操作系统有一个监督程序,不断读取待执行的命令(纸带),让电脑自动一个一个执行。把脱机IO更自动化了

缺点也很显然,操作系统的所有发展目的都是提高计算机的利用率,穷竭它的算力,不然浪费着干嘛呢?

单道批处理系统,内存中只有一个程序,那剩下的内存干嘛?没事干可不能闲着。

在这里插入图片描述

1.3 多道批处理

多道批处理系统应运而生。

在这里插入图片描述

很简单啊,我要让CPU无时无刻都在运行。我们观察上面的单道批处理系统运行图,尤其是IO操作,最烦人,最慢。为什么?因为人脑人手办事的,那肯定慢啊,那就浪费了好多时间。

那多道批处理系统就聪明了,你在进行IO操作的时候,我启动另一个任务的计算,这不就大大提高利用率了吗?

那它缺点呢?它必然优缺点,那不然操作系统怎么还会发展…

缺点:

第一个,这个最原始的系统,他任务执行是按顺序的。平均周转时间很长,一个任务可能做好几个小时甚至几天(通常在等待),你说现在的你能接受吗?当时是大学教授搞科研,弄个数学题给他算算就行了要求也不高,但是要听音乐看电影的那肯定不行啊。

第二个,无交互能力。你想修改你丢进去的程序是不行的,它不给你机会。你几天前丢了一个数学公式进去,第二天发现它写错了,你想改,不好意思没门,后面过几天出来一个错误的结果,甚至可能还浪费了一次使用计算机的机会。

第三个,内存管理。这么多程序,每个程序都要内存,那如何保证内存不会出错?一个程序跑太久了,卡bug了,如何删除干净它的内存?一个程序会不会在内存中搞破坏?

1.4 分时系统

因为当时一台计算机又贵又大,只有部分高校配备,为了更加提高计算机利用效率,创造性的一个操作系统设计思路。让一台电脑好多个人用。这就是分时系统的诞生,每个用户占领一段时间。

1.5 实时系统

后面又有另外一些特殊需求,希望能有一个实时控制系统。就好像人工遥控车,你总不会希望你摁下前进方向它过五分钟才走吧?

2. 基本特性

这里介绍一下现代操作系统主要特征。这些特征都会在后面的章节仔仔细细展开来讨论,因为它构成了操作系统最重要的部分。特征是由于某些功能而存在的,功能的存在又是为了解决某些问题。

2.1 并发

2.1.1 并行/并发

并行和并发什么区别?并行是两个人一起走,并发是两个人一起出发,一起到达。

并行是两个或多个时间在同一时刻发生,是一个微观概念;并发是两个或多个事件在同一时间间隔发生,是一个宏观概念。

目前计算机的处理就是一个并发性。表现出来是一分钟处理了好几个程序,但实际运行中,CPU一分钟跑一下这个程序,另一分钟跑一下那个程序,最后在一小时,所有程序都完成了。

2.1.2 进程

进程引入的目的,就是为了实现并发

想要实现并发,就需要管理好每个应用程序,要知道这个应用程序进行到什么状态?需要什么数据?挂起后还能够准确的回到它原先运行的断电。因此为每个应用程序设立一个进程,进行分配资源,进行管理。

2.1.3 线程

线程引入的目的,是为了管理进程

由于进程是拥有资源的,进程之间的调度会有很多开销。因此提出线程,基于进程上的管理单位,它不拥有资源,因此可以灵活调度。

为进程分配资源,对线程进行调度

2.2 共享

共享是指资源复用。但是不同的资源特性不一样,复用方式也不同。

2.2.1 互斥共享

像打印机这类资源,一次只能执行一个命令,这就是互斥共享。我可以给你用,但是你要等我空闲了再找我。

2.2.2 非互斥共享

与上述相反。

2.3 虚拟

虚拟,实际上是屏蔽了物理结构的差异,从逻辑上融为一体。没啥好说的。

像什么虚拟磁盘技术等

2.4 异步

并发执行特点就是异步,他和并行不同,并行是同步。我们不能等这个程序一直走一直走,卡住了也等。它住了我就跑别的程序,等它不卡了我再回来弄它。

3. 主要功能

这里主要介绍操作系统的主要功能,这些功能都能从上面的特性窥探到。由于有这些功能,才会使得操作系统具有上述的特性。而功能是实现,目的就是为了解决问题。

3.1 处理机管理功能

如何协调进程?

3.1.1 进程控制

能够控制进程的生成,销毁,分配资源,回收资源。

3.1.2 进程同步

进程是异步方式运行的,但是,过程中可能出现什么问题。比如说同时访问资源怎么办?这时候就需要做进程的协调。

进程互斥:进程对临界资源(只能一个人访问)进行访问时,采用互斥方式

进程同步:相互合作完成共同任务的进程间,对次序进行调整。比如先写后读。

实现进程同步,需要一个同步机制。常用的方法有设置锁和信号量机制。

3.1.3 进程通信

进程之间如何交互信息?

3.1.4 调度

如何调入进程进入内存执行?怎样调度?谁先执行?

3.2 存储器管理功能

如何管理内存?

3.2.1 内存分配

进程需要多少内存?分配多少给它?静态还是动态?

3.2.2 内存保护

某个进程修改别人进程的内存资源怎么办?

3.2.3 地址映射

实现虚拟功能就意味着逻辑地址和物理地址是不同的,进程的逻辑地址从0开始,但是物理地址不是,如何完成映射?

3.2.4 内存扩充

这不是物理上的扩充,是逻辑上的扩充。内存空间不够的时候,如何通过调度的方式,调整内存。

3.3 设备管理功能

管理外围IO设备

3.3.1 缓冲管理

在IO设备与CPU中设置缓冲,不要让CPU一直等待IO设备输入。

缓冲的存在,就是解决两个设备间处理速度不一致的问题。

3.3.2 设备分配

如何管理设备资源。

3.3.3 设备处理

一个驱动程序。实现CPU和设备控制器之间的通信。

我们的CPU和键盘,鼠标,屏幕,等等外围设备通信,都需要一个驱动,或者叫适配器。

3.4 文件管理功能

管理文件资源。包括目录,读写,共享,保护等

3.4.1 目录管理

如何合理安排文件位置

3.4.2 读写保护

有些文件不让每个人读写
冲的存在,就是解决两个设备间处理速度不一致的问题。

3.3.2 设备分配

如何管理设备资源。

3.3.3 设备处理

一个驱动程序。实现CPU和设备控制器之间的通信。

我们的CPU和键盘,鼠标,屏幕,等等外围设备通信,都需要一个驱动,或者叫适配器。

3.4 文件管理功能

管理文件资源。包括目录,读写,共享,保护等

3.4.1 目录管理

如何合理安排文件位置

3.4.2 读写保护

有些文件不让每个人读写

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《FreeBSD操作系统设计与实现》是一本介绍FreeBSD操作系统的权威性书籍。该书籍全面解析了FreeBSD操作系统设计原理与实现细节,深入讲解了FreeBSD操作系统的核心概念、功能模块和体系结构。 《FreeBSD操作系统设计与实现》一书主要分为五个部分:系统概述、进程管理、存储管理、文件系统和设备驱动。每个部分都对应着FreeBSD操作系统的一个重要方面,详细介绍了相应的设计原理和实现方式。 在系统概述部分,该书首先对FreeBSD操作系统的历史背景、发展过程和基本特性进行了介绍。然后,深入剖析了FreeBSD操作系统的体系结构,包括内核模块的组织结构、进程通信机制、虚拟内存管理和网络子系统等。 在进程管理部分,该书详细讨论了FreeBSD操作系统的进程管理机制,包括进程的创建、调度与退出,进程间的通信和同步方法,以及线程管理和多核支持等。 存储管理部分着重介绍了FreeBSD操作系统的存储管理机制。主要包括物理内存管理、页表管理、虚拟内存系统和缓存管理等内容。同时,该书还对FreeBSD中常用的文件系统如UFS和ZFS进行了深入讲解。 在文件系统部分,该书介绍了FreeBSD操作系统的文件系统层次结构、文件系统缓存和文件系统的操作接口。同时,还讨论了FreeBSD中的文件系统实现原理和常用的文件系统类型。 最后,设备驱动部分详细说明了FreeBSD操作系统的设备管理机制和驱动框架。该书介绍了设备驱动的注册、初始化和操作方式,并讨论了常见设备的驱动实现方法。 总之,《FreeBSD操作系统设计与实现》是一本全面系统地介绍FreeBSD操作系统的权威书籍。它对FreeBSD操作系统设计原理和实现细节进行了深入剖析,对于对操作系统设计和实现有兴趣的读者来说是一本非常有价值的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值