第二章 操作系统结构

关键概念和笔记

操作系统服务:用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测、资源分配、统计、保护和安全。

上面的概念特别多,但是基本上每个都是操作系统服务很重要的部分。后面的重点也放在程序执行、I/O操作、文件系统和资源分配上。

系统调用(system call)提供了操作系统提供的有效服务界面。

一般应用程序开发人员根据应用程序接口(API)设计程序。

为什么一个应用程序员宁可根据API来编程,而不是调用实际的系统调用呢?因为根据API编程的好处之一在于程序的可移植性。

向操作系统传递参数的三种方式:
1. 最简单的是通过寄存器来传递参数。(受寄存器数量限制)
2. 参数也可通过程序放在或压入堆栈中,并通过操作系统弹出。
3. 有的操作系统采用块或堆栈方法,因为这些方法并不限制所传递的参数的数量或长度。

一般点讲,系统调用就是操作系统提供给程序的接口,而这些系统调用的任意集合(或者操作系统提供的来调用系统调用的程序)就称为API。当程序调用系统调用时,就会从用户模式进入内核模式。


系统调用大致可分为五大类:进程控制、文件管理、设备管理、信息维护和通信。

  • 进程控制有进程调度、cpu调度、进程同步。
  • 进程控制和设备管理有死锁解决问题(这些都在后面章节提到)。
  • 通信有两种通信模型:消息传递模型和共享内存模型。

操作系统和操作系统的上层即系统程序为开发程序和执行程序提供了一些系统调用的简单接口,如文件管理、状态信息(一些基本的信息,有些系统还支持注册表,他被用于存储和检索配置信息)、文件修改、程序语言支持、程序装入和执行、通信。


一种重要原理是策略(policy)机制(mechanism)。机制决定如何做,策略决定做什么。


操作系统结构:

这里写图片描述
这里写图片描述

在MS-DOS系统中,并没有很好地区分接口和功能层次。例如,应用程序能够访问基本的I/O子程序,直接写到显示器和磁盘驱动程序中。这种任意性使MS-DOS易受错误(或恶意)程序的伤害,从而导致用户程序出错时整个系统的崩溃。

另一个受限的结构的例子是原始的UNIX操作系统。它由内核和系统程序两个独立部分组成……总的来说,这一层里面组合了大量的功能。这种单一式结构使得UNIX难以增强。

分层方法:这样操作系统就能提供对计算机和使用计算机的应用程序更多的控制。实现人员能更加自由地改变系统的内部工作和创建模块操作系统……分层法的主要优点在于构造和调试的简单化……每层为较高层隐藏了一定的数据结构、操作和硬件的存在…每层都为系统调用增加了开销。


微内核:
微内核通常包括最小的进程和内存管理以及通信功能。微内核的主要功能是使客户程序和运行在用户空间的各种服务之间进行通信。通信以消息传递形式提供……微内核必须忍受由于系统功能总开销的增加而导致系统性能的下降。

①内核小、易扩充、易移植


虚拟机:
创建虚拟机的原因:在并行运行几个不同的执行环境(即不同的操作系统)时能够共享相同的硬件。

底层机器有两种模式:用户模式和内核模式,虚拟机软件可以运行在内核模式,因为它就是操作系统。

因此,必须有虚拟用户模式和虚拟内核模式,这两种模式都运行在物理用户模式。

不同的系统资源具有完全的保护。每个虚拟机完全独立于其他虚拟机,因此没有安全问题,但同时也没有直接资源共享。

拓展

  1. Vmware和java虚拟机:Vmware虚拟化概念原理介绍
  2. 系统生成和系统启动,这部分可以参考之前写的一篇博客:操作系统概念:系统引导过程、引导程序、固件

猜你喜欢

转载自blog.csdn.net/qq_36328643/article/details/81211459