操作系统学习笔记(一)

Chapter1 操作系统简介

参考资料:操作系统概念(第9版&第7版)

What are the three main purposes of an operating system?

1.Resource allocator    操作系统相当于一个资源管理器,管理计算机硬件。

2.Control program       控制程序,它是人机交互的媒介。

3.Kernel                       内核,为程序运行提供了基础。

操作系统是管理计算机硬件的程序,它还为应用程序提供基础,并且充当计算机硬件和计算机用户的中介。

 

大型机的操作系统设计的主要目的是充分优化硬件的使用率,个人计算机的操作系统是为了能支持从复杂游戏到商业应用的各种事物,手持计算机的操作系统是为了给用户提供一个可以与计算机方便地交互并执行程序的环境

功能:CPU调度器      物理内存管理      虚拟内存管理      文件系统管理      中断处理与设备驱动

 

How does the distinction between kernel mode and user mode function as a rudimentary form of protection (security) system?

用户模式下只能执行非特权指令,如果在用户模式下试图执行特权指令,那么硬件并不执行该指令,而是认为该指令非法,并将其以陷阱(trap)的形式通知操作系统

管理模式可以执行全部特权指令和非特权指令,具有访问所有资源并改变处理器状态的能力。

特权指令包括:转换到用户模式,I/O控制,定时器管理和中断管理等。

 

Which of the following instructions should be privileged?(特权)

a. Set value of timer.                                  //设置定时器

b. Read the clock.                                      //读时钟

c. Clear memory.                                        //清空内存

d. Issue a trap instruction.                          //发出一个trap指令

e. Turn off interrupts.                                 //关闭中断

f. Modify entries in device-statustable.     //修改设备状态表中的条目

g. Switch from user to kernel mode.           //从用户模式切换到内核模式

h. Access I/O device.                                //接入I/0设备

Answer: a  c  e  f  h

 

Distinguish between the client–server and peer-to-peer models of distributed systems.

Answer: client-server(客户机-服务器系统)是以一个PC端作为中心系统响应用户的需求,其节点不对等。P2P系统模式节点对等,任何一个都可以作为客户机或服务器,解决了服务器瓶颈问题。

计算机系统大致可分为4个组成部分:计算机硬件、操作系统、系统程序与应用程序、用户

其关系如图(text editor 文本编辑器)

硬件(hardware),如中央处理单元(central processing unit,CPU)、内存(memory)、输入输出设备(I/O devices),为系统提供基本的计算资源。

应用程序,如文本处理程序、编译器、网络浏览器规定了用户以何种方式使用这些资源。

操作系统控制和协调各用户的应用程序对硬件的使用。

 

一个比较公认的定义是:操作系统是一直运行在计算机上的程序(通常称为内核),其他程序则为系统程序和应用程序。

 

现代通用计算机系统由一个或多个CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问。每个设备控制器负责一种特定类型的设备。CPU与设备控制器可以并发工作,并竞争内存周期。为了确保对共享内存的有序访问,需要内存控制器来协调对内存的访问。

概念:

bootstrap program(初始化程序/引导程序):打开电源或重启时,计算机都需要运行这个初始化程序,用于初始化操作系统的所有部分。

interrup(中断):事件的发生通常通过硬件或软件中断表示。硬件可随时通通过系统总线向CPU发出信号以触发中断,软件通过执行特别操作如系统调用(system call/monitor call)来触发系统中断。

当CPU中断时,它暂停正在做的事并立即转到固定的位置去继续执行。该固定位置通常是中断服务程序开始位置的地址。中断服务程序开始执行,执行完后,CPU重新执行被中断的计算。

 

存储结构:

随机访问内存(random access memory,RAM)

动态随机访问内存(dynamic random access memory,DRAM)

内存通常是用DRAM的半导体技术来实现的。、

内存是易失性存储设备,所以计算机系统会提供辅存(secondary storage)以作为内存的扩充。如磁盘(magnetic disk),绝大多数程序会保存在磁盘上,直到要执行时才装入到内存。

 

I/O结构

①I/O中断驱动:适合移动少量数据

②DMA(direct memory access,直接内存访问)用于大块的数据移动

单处理器系统和多处理器系统:

单处理器系统中,有一个主CPU能够执行一个通用指令集。一般以专用设备处理器的形式出现,如磁盘、键盘、图形控制器。

多处理器系统(并行系统(parallel system) 或 紧耦合系统(tightly coupled system))有多个紧密通信的CPU,共享计算机总线(有时还有时钟、内存、外设等)

多处理器系统有是三个主要优点:

①增加吞吐量:更短的时间做更多的事

②规模经济:共享资源的好处

③增加可靠性:分担故障

分类:主要有两类

非对称多处理(asymmetric multiprocessing):即每个处理器都有各自特定的任务。一个主处理器控制系统,其他处理器或者向主处理器要任务或做预先定义的任务。即主-从关系,主处理器调度从处理器并安排工作。

对称多处理(symmetric multiprocessing,SMP):处理器对等

 

双重操作模式:

用户模式(user mode)

内核模式(kernel mode / supervisor mode / system mode / privileged mode)

在计算机硬件中增加一个模式位(mode bit)以表示当前模式:内核模式(0),用户模式(1)

特权指令(privileged instruction):会引起损害的机器指令。如果在用户模式下试图执行特权指令,那么硬件将不会执行该指令,而是认为该指令非法,并将其以trap的形式通知OS。

 

user mode 转 kernel mode 不是特权指令

kernel mode 转 user mode 是特权指令

 

分布式系统(Distributed Systems)

分布式系统是一组物理上分开的,各种可能异构的计算机系统通过网络连接在一起为用户提供系统所维护的各种资源的计算机的集合。访问共享资源增加了计算速度、功能、数据可用性以及可靠性。

TCP/IP协议是最常用的网络协议,对于操作系统而言,一个网络协议只简单地需要一个接口设备,如网络适配器,加上管理它的驱动程序以及按网络协议处理数据的软件。

网络可根据节点间的距离来划分:局域网(local-area network,LAN)位于一个房间、一层楼或一栋楼内。广域网(wide-area netword,WAN)通常位于楼群、城市或国家之间。新型网络有蓝牙(BlueTooth)---实现数米内无线通信,等。

 

客户机-服务器计算----------

client-server系统 & P2P系统 都属于分布式系统

 

Chapter2 操作系统结构

QUESTION:

1、操作系统为用户、进程和其他系统提供了什么服务?

2、组织操作系统的方法?

3、操作系统是如何安装、定制以及启动的?

 

What is the purpose of system calls?

Answer:

系统调用提供了进程与操作系统间的接口,其目的就是让用户级空间能够请求系统级的

服务。

比如编写一个从一个文件读取数据并复制到另一个文件的简单程序,对于交互系统,这

过程需要一系列的系统调用:首先在屏幕上写出提示信息,再从键盘上读取定义两个文

件名称的字符。这个过程就需要许多I/O系统调用。后续也还需要许多各方面的系统调

用,从中即可看出,系统调用的作用就是让用户级的进程能够请求操作系统的服务

 

What are the three major activities of an operating system with regard to memory management?  (内存管理)

Answer:

① 记录内存的哪些部分正在被使用以及被谁使用

② 当有内存空间时,决定哪些进程可以装载进内存

③ 根据需要分配和释放内存

or

1) 按需分配与释放回收内存

2) job调度:当内存空间可用,决定将哪些进程调度入内存

3) 跟踪内存的使用情况,即追踪内存的哪一部分被使用,使用对象是谁

 

What are the three major activities of an operating system with regard to secondary-storage management? ()(二级存储/辅存)

Answer:

1) 对空闲的存储空间进行管理

2) 给待存储的对象分配合适的存储空间

3) 管理磁盘的调度

 

What system calls have to be executed by a command interpreter or shell in order to

start a new process?

解:

创建新进程的系统调用流程:

(基于UNIX下的进程创建流程)

当启动新进程,首先Shell或命令解释器执行fork()系统调用。接着,所选择的程序通过

exec()装入内存,程序开始执行。fork调用克隆当前执行的进程,而exec调用基于不同

的可执行文件覆盖一个新的进程

 

What is the purpose of system programs?

Answer:

计算机的逻辑层次:最底层是硬件,上面是操作系统,接着是系统程序,最后是应用程序。系统程序提供了一个方便的环境,以开发程序和执行程序。其中一小部分只是系统调用的简单接口,其他的包括文件管理,状态信息,文件修改,程序语言支持,程序装入和执行,通信等。

设计系统程序的目的,就是方便用户解决常见问题。系统程序将那些常用的系统调用打

包在一起,提供接口,为用户提供基本的功能,避免用户重复编程去解决一些常见的问

题。

 

What is the main advantage of the layered approach to system design? What are the disadvantagesof the layered approach? (分层方法的优劣)

Answer:

优点:构造和调试的简单化---每一层被“限定”了相应的功能,调试时不用考虑其他层次出错的可能性。每层为较高层隐藏了一定的数据结构、操作和硬件的存在。较高层利用较低层所提供的功能来实现,不需要知道如何实现这些操作。

缺点:效率较低,每层的信息传递需要额外的开销。例如,当一个用户执行I/O操作时,它执行系统调用,并陷入到I/O层,I/O层会调用内存管理层,内存管理层又调用CPU层,最后传递给硬件---每层都会增加额外开销(如参数传递等)。

分层设计的难点在于对层的详细定义,现在使用数量更少而功能更多的分层设计。

 

系统调用类型

操作系统提供的服务/函数:

为用户提供的服务包括:

1) 用户界面(接口)

用户界面是系统和用户之间进行交互和信息交换的媒介,它能够使得用户方便有效

率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作。我们知道用

户模式下是无法直接访问硬件的,因此当在需要访问硬件的情形下用户模式就无法

提供相应的服务了。

2) 程序执行

程序执行这个服务提供的便利就是帮助用户将程序装载入内存中并运行该程序,且

让该程序正常或不正常结束。由于根据设计,不能信任用户级的程序来分配 CPU

的时间,因此,在任何要执行程序的情况下,用户级程序都无法提供程序执行的服

务。

3) I/O操作

当某个用户程序运行时需要 I/O 设备,就需要 I/O 操作的帮助。对于特定的设备,

需要特定的功能,这就是 I/O 操作为用户提供的便利。为了提高效率以及进行相应

的保护,用户通常也无法直接控制 I/O 设备,因此通常的需要 I/O 操作的情况下,

用户级程序都无法提供I/O操作这样的服务。

4) 文件系统操作

为了解决用户程序需要读写文件和目录,或根据文件名来创建和删除文件、搜索一

个给定的文件、列出文件信息等的操作,提供了文件系统操作服务。这些操作有很

多细节,有了这样的服务,用户就不必具体了解细节并实现功能。删除文件时需要

删除名称文件信息并释放分配的块。还必须实施一系列的检查保护,以确保正确的

文件访问。用户程序既不能确保,保护方法的安全性,也因不被信任而被限制无法

分配空闲块和在文件删除时释放块。因此,在有这些需求的情况下,用户级程序都

是无法提供这样的服务的。

5) 通信

许多情况中,进程间需要交换信息,这就是进程间的通信。系统间传递消息通过将

消息转换为信息包来进行操作。系统将信息包发送到网络工作控制器,跨通信媒体

传输,并由目标系统重新组装。这就是通信服务为用户提供的便捷功能。对于用户

程序而言,它们没有办法正确找到网络设备的接口,不能协调网络设备间的通信。

因此不能提供通信服务。

为操作系统本身提供的服务/函数

资源分配

统计

保护和安全

 

微内核(microkernel)

微内核即较小的内核,通过将一些非基本部分从内核中移走,将它们实现为系统程序或用户程序的方法称为微内核技术。关于哪些应该保留在内核中没有定论,微内核通常包括最小的进程和内存管理以及通信功能。

微内核的主要功能是使客户程序和运行在用户空间的各种服务之间进行通信,通信以消息传递形式提供。

微内核方法的好处之一在于便于扩充操作系统,所有新服务可以在用户空间增加而不用修改内核。

 

 

猜你喜欢

转载自blog.csdn.net/qq_37205708/article/details/86517835