加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

简析操作系统七大功能

(2012-10-09 18:27:23)
标签:

杂谈

在课上,老师向我们介绍了操作系统的三大作用,即:

1、接待员,OS作为用户与计算机硬件系统之间的接口

2、管家,OS作为计算机系统资源的管理者

3、魔术师,OS实现了对计算机资源的抽象

老师在课上的三个比喻令人印象深刻,课下查阅了相关资料,发现现代PC操作系统基本实现以下7大功能:

  • 进程管理(Processing management)
  • 内存管理(Memory management)
  • 文件系统(File system)
  • 网络通信(Networking)
  • 安全机制(Security)
  • 用户界面(User interface)
  • 驱动程序(Device drivers)

7大功能除了用户界面(驱动程序应该属于接口部分内容),其余6个都会在后面的章节详细讲到,现在我先根据我查阅的资料对此7大功能做下简介。

一、进程管理

进程管理指的是操作系统调整多个进程的功能。

由于大部分的计算机只包含一颗中央处理器,在宏内核(Core)的情况下多进程只是简单迅速地切换各进程,让每个进程都能够运行,在多内核或多处理器的情况下,所有进程通过许多协同技术在各处理器或内核上转换。越多进程同时运行,每个进程能分配到的时间比率就越小。很多操作系统在遇到此问题时会出现诸如音效断续或鼠标跳格的情况(称做崩溃(Thrashing),一种操作系统只能不停运行自己的管理程序并耗尽系统资源的状态,其他用户或硬件的程序皆无法运行)。进程管理通常实践了分时的概念,大部分的操作系统可以利用指定不同的特权等级(priority),为每个进程改变所占的分时比例。特权越高的进程,运行优先级越高,单位时间内占的比例也越高。交互式操作系统也提供某种程度的回馈机制,让直接与用户交互的进程拥有较高的特权值。

在进程之下尚有线程的问题,但是大部分的操作系统并不会处理线程所遭遇的问题,通常操作系统仅止于提供一组API让用户自行操作或通过虚拟机的管理机制控制线程之间的交互。

二、内存管理

根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序员通常希望系统给他无限量且无限快的存储器。大部分的现代计算机存储器架构都是层次结构式的,最快且数量最少的暂存器为首,然后是高速缓存存储器以及最慢的磁盘存储设备。而操作系统的存储器管理提供查找可用的记忆空间、配置与释放记忆空间以及交换存储器和低速存储设备的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空间(通常是4GB,既使实际上RAM的数量远少于这数目)。然而这也带来了微幅降低运行效率的缺点,严重时甚至也会导致进程崩溃。

存储器管理的另一个重点活动就是借由CPU的帮助来管理虚拟位置。如果同时有许多进程存储于记忆设备上,操作系统必须防止它们互相干扰对方的存储器内容(除非通过某些协定在可控制的范围下操作,并限制可访问的存储器范围)。分区存储器空间可以达成目标。每个进程只会看到整个存储器空间(从0到存储器空间的最大上限)被配置给它自己(当然,有些位置被操作系统保留而禁止访问)。CPU事先存了几个表以比对虚拟位置与实际存储器位置,这种方法称为标签页paging)配置。

借由对每个进程产生分开独立的位置空间,操作系统也可以轻易地一次释放某进程所占据的所有存储器。如果这个进程不释放存储器,操作系统可以退出进程并将存储器自动释放。

三、磁盘与文件系统

所谓的文件系统,通常指称管理磁盘数据的系统,可将数据以目录或文件的型式存储。每个文件系统都有自己的特殊格式与功能,例如日志管理或不需磁盘重整。

操作系统拥有许多种自带文件系统。例如Linux拥有非常广泛的自带文件系统,如ext2ext3ext4ReiserFSReiser4GFSGFS2OCFSOCFS2NILFSGoogle文件系统Linux也支持非原生文件系统,例如XFSJFSFAT家族与NTFS。另一方面,Windows能支持的文件系统只有FAT12FAT16FAT32NTFSNTFS系统是Windows上最可靠与最有效率的文件系统。其他的FAT家族都比NTFS老旧,且对于文件长度与分区磁盘能力都有很大限制,因此造成很多问题。而UNIX的文件系统多半是UFS,而UNIX中的一个分支Solaris最近则开始支持一种新式的ZFS

大部份上述的文件系统都有两种建置方法。系统可以以日志式Journaling file system)或非日志式建置。日志式文件系统可以以较安全的手法运行系统回复。如果一个没有日志式建置的文件系统遇上突然的系统崩溃,导致数据创建在一半时停顿,则此系统需要特殊的文件系统检查工具才能撤消;日志式则可自动回复。微软NTFSLinuxext3ext4reiserFSJFS都是日志式文件系统。

每个文件系统都实现相似的目录/子目录架构,但在相似之下也有许多不同点。微软使用“\”符号以创建目录/子目录关系,且文件名称忽略其大小写差异;UNIX系统则是以“/”创建目录架构,且文件名称大小写有差异。

四、网络

许多现代的操作系统都具备操作主流网络通信协定TCP/IP的能力。也就是说这样的操作系统可以进入网络世界,并且与其他系统分享诸如文件、打印机与扫描仪等资源。

五、安全

大多数操作系统都含有某种程度的信息安全机制。信息安全机制主要基于两大理念:

  • 操作系统提供外界直接或间接访问数种资源的管道,例如本地端磁盘驱动器的文件、受保护的特权系统调用System call)、用户的隐私数据与系统运行的程序所提供的服务。
  • 操作系统有能力认证Authentication)资源访问的请求。允许通过认证的请求并拒绝无法通过的非法请求,并将适当的权力授权Authorization)给此请求。有些系统的认证机制仅简略地把资源分为特权或非特权,且每个请求都有独特的身份辨识号码,例如用户名称。资源请求通常分成两大种类:
    • 内部来源:通常是一个正在运行的程序发出的资源请求。在某些系统上,一个程序一旦可运行就可做任何事情(例如DOS时代的病毒),但通常操作系统会给程序一个识别代号,并且在此程序发出请求时,检查其代号与所需资源的访问权限关系。
    • 外部来源:从非本地端计算机而来的资源请求,例如远程登录本机计算机或某些网络连接请求(FTPHTTP)。为了识别这些外部请求,系统也许会对此请求提出认证要求。通常是请求输入用户名称以及相对应的密码。系统有时也会应用诸如磁卡或生物识别数据的它种认证方法。在某些例子,例如网络通信上,通常不需通过认证即可访问资源(例如匿名访问的FTP服务器或P2P服务)。

六、用户界面

今日大部分的操作系统都包含图形用户界面(GUI)。有几类较旧的操作系统将图形用户界面与内核紧密结合,例如最早的WindowsMac OS实现产品。此种手法可提供较快速的图形回应能力,且实现时不需切割模块因而较为省工,但是会有强烈副作用,例如图形系统崩溃将导致整个系统崩溃,例如蓝屏死机。许多近代的操作系统已模块化,将图形界面的副系统与内核分开(已知LinuxMac OS X原先就是如此设计,而某些扩充版本的Windows终于也采用此手法)。

许多操作系统允许用户安装或创造任何他们喜欢的图形用户界面。大部分的UnixUnix派生系统(BSDLinuxMinix)通常会安装X Window系统配合GNOMEKDE桌面环境。而某些操作系统就没有这么弹性的图形用户界面,例如Windows。这类的操作系统只能通过外加的程序来改变其图形用户界面,甚或根本只能改变诸如菜单风格或颜色配置等部分。

图形用户界面与时并进,例如Windows在每次新版本上市时就会将其图形用户界面改头换面,而Mac OSGUI也在Mac OS X上市时出现重大转变。

七、驱动程序

所谓的驱动程序(Device driver)是指某类设计来与硬件交互的计算机软件。通常是一设计完善的设备交互界面,利用与此硬件连接的计算机汇排流或通信子系统,提供对此设备下令与接收信息的功能;以及最终目的,将消息提供给操作系统或应用程序。驱动程序是针对特定硬件与特定操作系统设计的软件,通常以操作系统内核模块、应用软件包或普通计算机程序的形式在操作系统内核底下运行,以达到通透顺畅地与硬件交互的效果,且提供硬件在处理异步的时间依赖性界面(asynchronous time-dependent hardware interface)时所需的中断处理程序(Interrupt handler)。

设计驱动程序的主要目的在于操作抽象化,任何硬件模块,既使是同一类的设备,在硬件设计面上也有巨大差异。厂商推出的较新模块通常更可靠更有效率,控制方法也会有所不同。计算机与其操作系统每每不能预期那些现有与新设备的变异之处,因此无法知道其操作方法。为解决此问题操作系统通常会主动制订每种设备该有的操作方式,而驱动程序功能则是将那些操作系统制订的行为描述,转译为可让设备了解的自定义操作手法。

理论上适合的驱动程序一旦安装,相对应的新设备就可以无误地运行。此新驱动程序可以让此设备完美地切合在操作系统中,让用户察觉不到这是操作系统原本没有的功能。

以上就是操作系统的七大功能,此外我还发现除了此七大功能,操作系统理论研究者有时在结构上把操作系统分成四大部分:

*  驱动程序 - 最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

*  内核 - 操作系统之最内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。

 支承库 - (亦作接口库)是一系列特殊的程序库,它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。

*  外围 - 所谓外围,是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。

以上就是我查找的觉得对自己加深理解有用的资料,希望能通过我查找的资料使大家能对操作系统有个虽笼统但能加深大家对OS的理解,谢谢大家。

                                                                                                                                                              100341105 郭 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有