现代操作系统学习笔记-第一章01 – 作者:hu666666

引论

1.为什么创造操作系统啊?

现代计算机系统已经是一个及其复杂的系统,由一个或多个中央处理器,内存,输入输出设备等构成。如果直接由人对其进行操作,那实在是不可能完成的任务(因为他要懂得知识以及会的操作过多)。故创造出操作系统这东西,为用户更好的呈现计算机的信息,更好的管理计算机资源,方便用户的使用。

一个误区:用户直接与计算机交互的程序,基于文本的是shell,基于图标的是图形用户界面,他们并不是操作系统的一部分

2.基本组成

图片[1]-现代操作系统学习笔记-第一章01 – 作者:hu666666-安全小百科

最底层是硬件层,上面是软件层,在软件层中操作系统位于最底层。同时计算机运行有两种状态:内核态和用户态。操作系统运行在内核态下,其对硬件有完全访问权限,同时可以执行各种命令。软件其余部分运行在用户态下,只能执行部分命令。

用户接口程序(shell,CUI)位于用户态的底层,运行用户运行其他程序。

操作系统直接运行在裸机上,为其他软件提供基础的运行环境,且操作系统程序受硬件保护,用户无法修改。

注意:在许多操作系统中,运行在用户态下的程序也协助操作系统完成一些特殊的操作。此时,争议就出现了,该程序属不属于操作系统的一部分。故在很多系统中,上述分层是模糊的。

3.操作系统与用户程序的区别

a.所处的地位不同

b.操作系统更加大型,复杂和长寿

1.1什么是操作系统?

首先,我们要明白给出操作系统一个明确且正确的定义是十分困难的。

1.1.1作为扩展机器的操作系统

我们得理解一个概念—-抽像!!!!!

这里举一个栗子:

在早期,软件程序员需要直接使用硬件的接口,在实现程序时,需要深入理解硬件接口,并深入硬盘的细节。这时,就出现了都第一种抽象—硬件驱动,这种软件提供了读写硬盘块的接口,使程序员不用再深入细节。后来,又出现了文件这种抽象,更有效的屏蔽底层硬件的细节,软件程序可以直接创建文件,读写文件,方便了程序员。

抽象是一个很重要的概念。好的抽象可以把几乎不可能管理的任务划分成两个可管理的部分。第一部分是有关抽象的实现和定义,第二部分是随时使用这些抽象解决问题。

操作系统的一个任务就是屏蔽硬件,更显给程序一个良好,清晰,优雅,一致的抽象。

注意:操作系统的实际客户是应用程序。这些应用程序直接与操作系统及其抽象打交道。而我们用户是和用户接口及其抽象打交道。

1.1.2作为资源管理者的操作系统

自顶向下:操作系统可以被看作是向应用程序提供抽象的软件

自底向上:操作系统的任务是在相互竞争的程序之间有序地控制对处理器,存储器等硬件的分配

可能在同一台计算机上运行着多个程序,多个用户在使用同一台计算机。在这种情况下,操作系统的存在是十分有必要的,为不同程序分配资源,对不同用户的资源数据进行隔离。

从资源管理的角度出发,操作系统的主要任务是记录那个程序在使用什么资源,对资源请求进行分配,评估使用,并为不同程序和用户调解相互冲突的资源请求。

重要!!!

资源管理包括用以下两种方式实现多路复用共享资源

第一种:时间复用,不同用户和程序轮流使用资源,典型的例子是,cpu轮流处理不同的程序

第二种:空间复用,每个客户都获得资源的一部分,典型的例子是,磁盘为不同用户划分存储空间,实现多个用户的数据存储在同一台计算机上

1.2操作系统的历史

以计算机的发展史为线索,探究操作系统的发展史。

第一代:真空管和穿孔卡片

设备老旧,没有程序设计语言,更不存在操作系统,仅用于简单的数学运算

第二代:晶体管和批处理系统

第三代:集成电路和多道程序设计

第四代:个人计算机

第三代:移动计算机

来源:freebuf.com 2021-03-26 20:30:00 by: hu666666

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论