【操作系统】Operating System Conceptions第二章知识整理总结

小结:

       这几天我看了《Operating System Conceptions》的第二章。

       第二章先从用户、开发者以及计算机系统的角度开始,展示操作系统所提供的服务,继而讲解了操作系统是如何通过系统调用来为系统提供服务的,阐述一段程序是如何在系统中装入链接以及执行的。同时通过比较和对比整体、分层、微核、模块化和混合策略操作系统的不同设计,向我们展示了macOSAndroidWindows三种不同的操作系统并告诉我们如何去设计一个操作系统,并如何去调试它。最后作者对启动操作系统的过程进行了说明,描述了计算机是如何启动操作系统的。

读完第二章,让我对操作系统的结构有了一个更加明晰的理解,通俗地来想,操作系统就是在硬件上为程序的执行提供一个环境。由于硬件设施的不同以及我们所要求操作系统注重提供的服务不同等,关于操作系统的设计和组织因而因事制宜。在看到计算机如何启动时,想到以前的问题:我们想要计算机启动,那必须先运行程序,但是计算机不启动就无法运行程序,现在明白了这样一个问题的关键就在于BIOS了。本章中关于程序的装入和链接以及计算机如何启动的过程讲解比较笼统,不像我之前学的教材阐述得细致,应该在后文中会详细解说。但是在操作系统设计这一节的讲解中,我第一次有了一种以软件工程的角度,像看待软件设计那样,去看待一款操作系统的设计与实现,文中提出的机制和政策分离原则,机制决定如何做某事,而政策决定需要做的是什么,这和软工中的需求和实现是相像的,但不同的是软工中实现是紧密围绕着需求来的,OS中政策和机制是分离原则的,软工中的需求主要是以人为核心的,OS中政策是主要是围绕系统提供的服务的。一个因地制宜的操作系统是各种算法和策略实现的基础。

    此外,我还了解到,Computer Science被分为四个大类:AI, Programming Language, Systems, Theory.其中Systems的内容十分广泛,包括OS, Architecture, Network等等,它最好的会议是OSDISOSP,这两个会议方向很广,影响很大,每两年开一次,两个会议轮流开。除此之外,在OS方向还有一些方向比较专一,但是仍然很高级别的会议,比如FAST就是File and storage system最好的会议,NSDI偏重Networked System Design and Implementation RTSSReal system最好的会议,而 ISCAHPCAMICROArchitecture领域最好的会议,还有像ASPLOS则是OS, Architecture, Programming language三个领域交叉的最好会议。

 

 

 

整理与思考:

2.2  Operating-System Services

 

操作系统提供服务:

用户界面,程序执行,I/O操作,文件系统操作,通信,错误检测

 

用户与操作系统进行交互的三种基本方法:命令解释器,图形用户界面,触摸屏界面

 

2.3  System Calls

什么是系统调用?

所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看作特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/0传输以及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。通常,一个操作系统提供的系统调用命令有几十乃至上百条之多。

 

系统调用的存在的意义:

1)用户程序通过系统调用来使用硬件,而不用关心具体的硬件设备,这样大大简化了用户程序的开发。比如:用户程序通过write()系统调用就可以将数据写入文件,而不必关心文件是在磁盘上还是软盘上,或者其他存储上。

2系统调用使得用户程序有更好的可移植性。只要操作系统提供的系统调用接口相同,用户程序就可在不用修改的情况下,从一个系统迁移到另一个操作系统。

3系统调用使得内核能更好的管理用户程序,增强了系统的稳定性。因为系统调用是内核实现的,内核通过系统调用来控制开放什么功能及什么权限给用户程序。这样可以避免用户程序不正确的使用硬件设备,从而破坏了其他程序。

4系统调用有效的分离了用户程序和内核的开发。用户程序只需关心系统调用API,通过这些API来开发自己的应用,不用关心API的具体实现。内核则只要关心系统调用API的实现,而不必管它们是被如何调用的。

 

要想实现系统调用过程,可以总结为以下几个方面:1. 通知内核调用一个哪个系统调用;2. 用户程序把系统调用的参数传递给内核;3. 用户程序获取内核返回的系统调用返回值

 

这样,操作系统的运行环境可以理解为:用户通过操作系统运行上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;也可能是程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态。当管理程序运行结束时,用户程序需要继续运行,则通过相应的保存的程序现场退出中断处理程序或异常处理程序,返回断点处继续执行。

 

系统调用可以大致分为六个主要类别:

1、进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。

2、文件管理。完成文件的读、写、创建及删除等功能。

3、设备管理。完成设备的请求或释放,以及设备启动等功能。

4、信息维护。保存有关其所有进程的信息,并使用系统调用来访问此信息。

5

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值