Operating System Concepts ——chapter 1—— introduction

2019/07/27
重新开始学习操作系统。
学的是中南大学胡志刚老师在爱课程上的操作系统课程:
http://www.icourses.cn/web/sword/portal/shareDetails?cId=3743#/course/chapter


什么是操作系统:
一系列程序集合,管理计算的硬件,软件资源,合理组织计算机的工作流程,便得计算机系统便于用户使用。

计算机可以分为4个组成部分: 硬件,操作系统,应用程序,用户 从用户视角来看,为单个用户服务的个人电脑最重要的是易用性,性能其次,而不用关注资源使用率。 而多人接入的大型服务器则关注性能,并确保大家能平等的使用资源(cpu,内存)等。 从操作系统视角来看,可以看做是一个资源分配器,分配cpu,内存,网络等资源

1.2 Computer-System organization

计算机的各个组成部分,如cpu,内存控制器,usb控制器,图形适配器都通过总线相连。
Operating System Concepts ——chapter 1—— introduction_第1张图片

存储有很多种类,速度,成本,大小不一。速度越快,成本也就越高。所以为了保证速度的同时降低成本,一般的计算机都采用层次的存储结构。

Operating System Concepts ——chapter 1—— introduction_第2张图片

IO结构

IO的代码占操作系统相当的一部分,一是IO对操作系统的稳定性和性能至关重要,二是IO设备种类的多样性。

每个设备都有一个控制器,控制器一般都有自己的本地的缓冲区和寄存器,这些控制器直接连接到总线上。操作系统会有一个驱动和控制器对应,这个驱动能够理解对应的控制器并代码操作系统与之交互。操作系统与设备交互数据的流程是这样的(如读取数据到内存):驱动向控制器发送命令,控制器解析命令,将数据读取到本地缓存,通过中断的方式通知驱动,驱动获得操作系统的控制权,将数据从控制器的缓存移动到内存之中。由于这种方式老是中断操作系统,效率不高,一种叫做DMA(direct memory access)的方式:驱动先设置好内存中的缓冲区及计数器,由控制器负责将数据直接移动到内存,移动完毕之后产生一次中断,操作系统进行处理。在控制器移动数据的过程中,cpu可以处理其他的事情。

各种外设通过控制器与总线相连。控制器的作用:任何东西要由操作系统进行处理,必须先装入内存。在现代操作系统中,将数据装入内存这个动作一般不由CPU来完成,而是由控制器来完成。那么控制器怎么知道装入内存的地址呢?是负责与设备的控制器打交道的驱动告诉控制器的。控制器操作完成之后,以中断的方式通知CPU。
目的
I/O设备可以和CPU可以并发执行。(一定程度上可以并行执行)
concurret:并发。在某时段内,两个程序同时运行。
parallel:并行。在某一时刻,两个程序能够同时执行。

1.3 Computer-System Architecture

计算机系统可以大致通过其采用的通用处理器的数量来进行分类

单处理器系统

绝大多数计算机都是单处理器,只有一个通用的处理器,可以执行通用指令集。可能还会有专用处理器,如控制磁盘的处理器。

多处理器系统

能够增加吞吐量,降低成本(共享外设),增加可靠性。又分为对称多处理和非对称多处理,一般都是对称多处理。

集群系统

多 CPU 系统的另一种类型是集群系统 (clustered system) 。与多处理器系统一样,集 群系统将多个 CPU 集中起来完成计算任务。然而,集群系统与多处理器系统不同,它是由 两个或多个独立的系统稠合起来的。

又分为对称集群和非对称集群。

1.4 operating-system structure

双运行模式和多运行模式
为了确保操作系统的正常运行,一定需要区分普通程序和内核程序。用来防止用户程序的错误导致整个操作系统的崩溃。大多数的计算机系统提供硬件支持来区分不同的模式:一个表示不同模式的标志位。最少需要两个模式:内核模式和用户模式。支持虚拟化的cpu还需要更多的标志位来表示 virtual machine manager (VMM)和 virtual machine manager software。

1.5 timer

为了保证操作系统对cpu的控制,就需要控制用户程序对cpu的时间,以防止用户程序出现死循环或者用户程序故意占用cpu不释放。实现的方式是在切换到用户程序之前,先设置一个定时器,时间到了之后,触发中断,操作系统重新获得控制。一般定时器是一个固定速率的时钟加计数器实现的。很显然,修改计数器的值是需要特权的。

1.6process management

一个程序只有当它的指令被cpu执行时才能发挥作用。一个正在被执行的程序,叫做进程,程序本身并不是进程。程序的运行可能需要各种资源,如cpu,内存,文件,操作系统需要为其分配这些资源,并在程序运行结束后回收这些资源。每个线程(进程的子概念)都有一个程序计数器,指定下一个应该执行的指令。
操作系统需要负责处理以下进程管理相关的事务:
创建和删除进程
挂起和恢复进程
调度进程
提供进程同步的机制
提供进程通信的机制

1.7 memory management

主存是现代操作系统的核心,是唯一cpu能够直接读取的大容量存储,所以不论是指令还是数据,都是先加载到主存,然后再被cpu读取的。操作需要管理以下内存相关的事务:
跟踪哪些空间被使用了,被谁使用
决定哪些进程被移入和移出主存
分配和释放空间

1.8 storage managment

文件系统管理
操作系统提供一个统一的,逻辑上的信息存储的视图,从各种物理存储设备(如磁盘,光盘,磁带)抽象出文件的概念。操作系统负责管理以下和存储相关的事物:
创建和删除文件
创建和删除目录
操作文件和目录的权限管理
将文件映射到二级存储
将文件回写到稳定存储介质

大容量存储管理
free space management
stroage allocation
disk sheduling

cache
缓存的工作原理是:信息一般保存在某个存储系统,当需要使用的时候,会被临时加载到缓存中,当需要某个信息的时候,会先去检查缓存。cpu的缓存完全是由硬件实现的,操作系统无法管理。因为缓存空间非常有限,所以管理缓存是一件非常重要的事。
在一个分层的存储结构中,同样的数据会出现在不同的地方,所以如何保持它们的同步复杂而重要。特别是考虑到多线程,多处理器,甚至是分布式操作系统时。

数据一致性问题
缓存的存在,导致同一个数据,在多个位置被存储。而对数据的修改,可能只体现在缓存,那么以就产生了数据不一致的问题。
解决方法
1)写通过(write through)
如果在上一级被修改,则对应同步修改下一级的数据。

I/O
I/O子系统由以下元素组成:
memory management
general device-driver interface
drivers for specific hardware devices

DMA(direct memory access)
1)used for high speed I/O设备
2)设备控制器直接将整块整块的数据传输到主存中
3)整块的数据传输完之后才需要产生一个中断,而不是每个字节产生一个中断

1.9 protection and secirity

protction负责管理不同的用户的权限,确保各种资源不会被滥用。security保护电脑不受攻击来自外部或内部的攻击,如病毒,蠕虫,DOS攻击等等。
为了区分不同的用户,为每个用户设置用户ID。为了区分不同的用户群体,设置了用户组id的概念。

1.10 kernel data structure

关于操作系统的实现:数据以怎样的结构被存储?
lists, statcks, queues, tree, map, bitmap
比较熟悉,略

大型主机系统

批处理系统
一次输入多个任务,由操作系统安排执行,减少人为的干预,可以提高任务处理效率和吞吐量。但是此时用户没法交互(最大的缺点)。
1)单道批处理
系统同时只能执行一个任务,当一个任务执行完成之后执行下一个任务。所以当系统在进行I/O操作时,CPU处于空闲状态。
2)多道(multiprogramming)批处理
操作系统可以同时处理多个任务,虽然CPU真正意义上,同一时刻只能处理一个任务,但是当一个任务进行I/O操作时,另一个任务可以执行计算任务。从而整体上极大的提高了系统的吞吐量。
高级调度:
决定多少个任务在执行(多少道)
低级调度:
决定进程的运行顺序

特点:
多道
无序
调度

疑问:
为什么批处理系统无法交互?

分时系统
将CPU的时间划分为一个一个的时间片(time slice),每个用户轮转一个时间片。适合交互式作业。
特点:
1)交互性
2)多道
3)即时性
4)独占性

实时系统
专用系统,而批处理系统和分时系统都是通用系统。
响应时间严格控制。
硬实时系统:
二级存储(一般为磁盘)基本不存在。
软实时系统:
实时要求松一些。
1)即时性
2)独占性
3)多道性
4)交互性

硬件保护

双模式系统

  1. user mode

  2. kernel mode

硬件实现了一个状态位。
0->内核态
1->用户态
特权指令:所有跟硬件相关的指令都是特权指令。
非特权指令

主存保护
寄存器保存base&length,确定每个程序可以操作的主存地址。从而隔离多道程序。
寄存器保存的是当前正在运行的进程的相关变量。而更一般的,进程的PCB(process control block)中保存了base&length。
操作系统内核有个专门的PCB区,用来保存PCB信息。
疑问:
程序的堆,栈,内存都被限制到同一个区间内?而不是分开限制?

practice exercise

答案地址:
http://116.77.75.202:83/2Q2W531FC497F8B04CE272DD3DBD89BA98FE626E8581_unknown_87676E626E2B97154B62EF13B5D3679D1E51B48F_10/codex.cs.yale.edu/avi/os-book/OS9/practice-exer-dir/

  1. three main purpose of operating system
    提供应用程序能够高效方便的基于硬件执行的环境
    高效并且公平的分配相互独立的资源

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

The distinction between kernel mode and user mode provides a rudi-mentary form of protection in the following manner. Certain instructionscould be executed only when theCPUis in kernel mode. Similarly, hard-ware devices could be accessed only when the program is executing inkernel mode. Control over when interrupts could be enabled or disabledis also possible only when theCPUis in kernel mode. Consequently, theCPUhas very limited capability when executing in user mode, therebyenforcing protection of critical resources.

你可能感兴趣的:(操作系统)