操作系统 --概述(一)

时间:2024-03-20 17:35:01

一.概述


操作系统的概念 --图

  • 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配(中间往两边看)
  • 提供给用户和其他软件方便的接口和环境。(从下往上)
  • 是计算机系统中最基本的系统软件。(从上往下)

操作系统 --概述(一)

操作系统的功能--作为系统资源的管理者


1. 进程管理

进程控制、进程同步、进程通信、死锁处理、处理机调度等。

2. 内存管理

内存分配、地址映射、内存保护与共享、虚拟内存等。

3. 文件管理

文件存储空间的管理、目录管理、文件读写管理和保护等。

4. 设备管理

完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率。

主要包括缓冲管理、设备分配、设备处理、虛拟设备等

操作系统的功能--作为用户和计算机硬件之间的接口


1.命令接口(用户直接使用):

  • 联机命令接口(指令):用户说一句,系统做一句
  • 脱机命令接口(批处理命令):用户说一堆,系统做一堆

2.程序接口(用户通过程序间接使用)

由一组系统调用命令组成(程序接口=系统调用=广义指令)

用户通过在程序中使用这些系统调用命令来请求操作系统为其服务

程序接口:如c: \Windows\System32\user32. dll程序员在程序中调用user32. dll (该调用过程即为系统调用)即可实现创建窗口等功能。只能通过用户程序间接使用。

3.GUI:图形用户接口

操作系统 --概述(一)

 

操作系统的特征 --图


1.并发

并发:两个或多个事件在同一时间段发生。宏观看同时发生,微观看是交替发生

并行:两个或多个事件在同一时刻同时发生

并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。

操作系统通过引入进程和线程,使得程序能够并发运行

2.共享

共享:即资源共享,系统中资源可以被多个并发进程共同使用

二种资源共享方式:

  • 互斥共享   系统中的某些资源,虽然可以供给多个进程使用,但一个时间段内只允许一个进程访问资源
  • 同时共享   系统中的某些资源,允许一个时间段由多个进程 "同时" 对它们进行访问

所谓:同时,只是宏观上,微观上这些进程可能是交替的对该资源进行访问(分时共享)

实例:

互斥共享:QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程(打印机)

                   互斥共享的资源称为临界资源,需要用同步机制来实现对临界资源的访问

同时共享:发送文件(同时对硬盘资源共享)

3. 虚拟

虚拟技术把一个物理实体转换为多个逻辑实体。

主要有两种虚拟技术:时分复用技术和空分复用技术。

应用:

虚拟处理器技术:多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。(为什么单核CPU可以执行多个进程)

虚拟内存技术:虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。

虚拟和并发的关系:

       显然,如果失去了并发性,则一个时间段只执行一个程序,那么就是去了虚拟的意义。因此没有并发,就谈不上虚拟

4. 异步

在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。这就是异步性

异步和并发关系:

      显然,如果失去并发,系统只能串行执行各个进程,每个进程会贯彻到底。只有系统拥有并发,才可能导致异步性


补充:并发和共享的关系

使用QQ发送文件A,同时使用微信发送文件B:

1.两个进程并发执行(并发性)

  如果失去并发,系统只有一个程序允许,则共享性失去意义

2.需要共同访问硬盘资源(共享性)

如果失去共性,QQ和微信不能同时访问硬盘资源,也就无法并发

并发和共享互为存在条件

没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的最基本特征


OS发展和分类  --图


OS运行机制  --


 计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序,一种是用户程序。前者是后者的管理者,因此 “管理程序” 要执行一些特权命令,而 “被管理者程序” 出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令,置中断指令,存取用于内存保护的寄存器,送程序状态字到程序状态字寄存器等指令

二种指令:

  • 特权指令:如内存清零指令(不允许用户程序使用)
  • 非特权指令:如普通的运算指令

如何判断? 如果指令严重干扰其他程序的执行,则一定是特权指令

二种处理器状态:

  • 用户态(目态):此时CPU执行非特权指令
  • 核心态(管态):特权非特权都可以执行

用程序状态字寄存器(PSW)中的某个标志位来标识当前寄存器出去什么状态。如0为用户态,1核心态

两种程序:

  • 内核程序:系统的管理者,特权和非特权指令都可以执行,运行在核心态
  • 应用程序:保证程序正常运行,只能执行非特权指令,运行在用户态

OS的内核


内核是计算机上配置的底层软件,是OS最基本,最核心的部分,使计算机功能的延伸。不同系统对内核的定义稍有区别,大多数操作系统内核包括四个方面的内容。

1.时钟管理

       时钟的第一功能是计时,向用户提供标准的系统时间。另外通过时钟中断的管理,实现进程的切换。诸如,在分时操作系统,采用时间片轮转的调度实现;在实时系统中,按截至时间控制运行的实现;在批处理,通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖时钟。

2.中断机制

       引入中断技术的初衷是提高多道程序运行环境CPU的利用率。后来逐渐发展,形成多种类型,成为操作系统各项操作的基础。如键盘或鼠标信息输入,进程的管理和调度,系统功能的使用,设备驱动,文件访问等,无不依赖中断机制。考研说操作系统是靠中断驱动的软件

        中断机制中,只有一小部分功能属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

3.原语

       1) 处于操作系统的最底层,是最接近硬件的部分

       2)这些程序的运行具有原子性,其操作必须一气呵成

       3)运行时间短,调用频繁

  通常把具有这些特点的程序称为原语,所以说原语是一种特殊的程序

 

操作系统 --概述(一)

操作系统 --概述(一)

大内核和微内核


1. 大内核

大内核是将操作系统功能作为一个紧密结合的整体放到内核。

由于各模块共享信息,因此有很高的性能。

2. 微内核

由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。

在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。

因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。

操作系统 --概述(一)

中断分类--


在操作系统中引入核心态和用户态两种工作状态后,就要考虑到如何切换状态。操作系统内核工作在核心态,而用户程序工作在用户态。但操作系统不允许用户程序实现核心态的功能,但它们又必须使用这些功能。因此引入中断和异常,实现从用户态进入核心态。这是通过硬件实现的(例如,用程序状态字寄存器(PSW)中的某个标志位来标识当前寄存器出去什么状态。如0为用户态,1核心态。若要进入核心态,只需要将位置设为1即可

1. 外中断

由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。

2. 异常

由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。

3. 陷入

在用户程序中使用系统调用。

系统调用--


什么是系统调用?

系统调用是OS提供给应用程序(程序员)使用内核功能的接口,可以理解为一种供应用程序调用的特殊函数,应用程序发出系统调用请求来获得OS的服务

什么作用?

操作系统掌管系统中各种共享资源,因此凡是与资源相关的操作(存储分配,I/O操作,文件管理),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。保证系统的稳定和安全性,防止用户非法操作

操作系统 --概述(一)

注意 :

1.陷入(陷阱)指令时在用户态执行的,执行后引发中断,CPU进入核心态

2.发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行

3.陷入指令时唯一一个只能在用户态下下执行,而不可在核心态执行的指令

操作系统 --概述(一)

 

系统调用与库函数的区别:

库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏 “访管” 指令的细节,使系统调用更为方便,抽象。但是库函数属于用户程序而非系统调用,是系统调用的上层

 如果程序的运行由用户态转到核心态,会用到访管指令访管指令是在用户态使用的,所以它不可能是特权指令

操作系统 --概述(一)

Linux 的系统调用主要有以下这些:

Task Commands
进程控制 fork(); exit(); wait();
进程通信 pipe(); shmget(); mmap();
文件操作 open(); read(); write();
设备操作 ioctl(); read(); write();
信息维护 getpid(); alarm(); sleep();
安全 chmod(); umask(); chown();

题目:

1.下列选项中,操作系统提供给应用程序的接口是( ). [2010年计算机联考真题]
A.系统调用  B.中断  C.库函数  D.原语


2. 操作系统与用户通信接口通常不包括( )。
A. shell  B.命令解释器C.广义指令   D.缓存管理指令


3. 计算机开机后,操作系统最终被加载到( ). [2013年计算机联考真题]
A. BIOS  B. ROM  C. EPROM  D. RAM


1. A
操作系统接口主要有命令接口和程序接口(也称系统调用)。库函数是高级语言中提供的与系统调用兼应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更为方便、抽象。但是,库函数属于用户程序而非系统调用,是系统调用的上层。
2. D
广义指令就是系统调用命令[而命令解释器属于命令接口shell 指命令解析器,也属于命令接口。系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用。
3. D
系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM部分未复习到组成原理的读者可能对此题的答案并不是太熟悉,但熟悉了组成原理中的各类存储介质之后,相信选对这道题并不难。

操作系统 --概述(一)