一、操作系统的基本概念

一、操作系统的概念

1.定义

操作系统(OS)是控制和管理计算机系统的硬件和软件资源,并合理的组织调度计算机工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统最基本的系统软件。操作系统是对计算机系统的第一次扩充。

2.功能和目标

主要功能:处理机管理、存储器管理、文件管理、设备管理,作为用户和计算机硬件之间的接口。

命令接口----(交互式、批处理)。

程序接口—允许用户通过程序间接使用,由一组系统调用组成(程序接口=系统调用=广义指令)。

GUI—图形用户接口。

目标:安全、高效、方便用户使用。

3.操作系统的特性

1、并发(注意与并行区分)

所以,并发和并行的区别就很明显了。它们虽然都说是"多个进程同时运行",但是它们的"同时"不是一个概念。并行的"同时"是同一时刻可以多个进程在运行(处于running),并发的"同时"是经过上下文快速切换,使得看上去多个进程同时都在运行的现象,是一种OS欺骗用户的现象

下划线转载来源:https://www.cnblogs.com/f-ck-need-u/p/11161481.html

2、共享(注意与并发的关系)

3、虚拟(例虚拟存储器——空分复用技术,虚拟处理器——时分复用技术)

4、异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度推进,这就是进程的异步性。(只有系统拥有了并发性,才有可能导致异步性)

4.操作系统的发展和分类

Tips:区分每个阶段的优缺点

手工操作阶段:

用户独占全机,人机速度矛盾导致资源利用率极低

批处理阶段(单道批处理系统):

引入脱机输入/输出技术,用磁带完成,并由监督程序负责控制作业的输入、输出。监督程序为OS的雏形。

优点:缓解了一定程度上的人机速度矛盾,资源利用率有所提高

缺点:内存中仅能有一道程序,CPU有大量时间处于空闲等待I/O完成,资源利用率依然很低。

批处理阶段(多道批处理系统):

操作系统正式诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各程序并发执行。

优点:多道程序并发执行,共享计算机资源,资源利用率大大提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。

缺点:用户响应时间长,没有人机交互功能

分时操作系统:

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

优点:用户请求可以被即时响应,解决人机交互问题。运行多个用户使用同一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

缺点:不能优先处理一些紧急任务。OS对每个用户都是公平的。

实时操作系统:

优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

分类:硬实时系统(例导弹控制系统,自动驾驶系统)软实时系统(12306)

特点:及时性、可靠性。

其他操作系统:

网络操作系统(Windows NT)、分布式操作系统(分布性和并行性)、个人计算机操作系统(Window 10,MacOS),注意区分前两者的差异。

5.操作系统的运行机制和体系结构

指令:分为特权指令和非特权指令。

处理器状态(PSW):分为用户态(目态),核心态(管态)。用户态只能执行非特权指令,核心态则是两种指令都可执行。

用户态—>核心态是通过中断实现的,并且中断是唯一的途径。核心态—>用户态是将PSW的标志位设置为“用户态”实现的。

程序:内核程序(核心态)和应用程序(用户态)。

指令,处理器状态以及程序的区分是密切相关的。

操作系统内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。

体系结构:大内核和微内核两种类型。大内核把主要模块作为系统内核,运行在核心态,微内核则将最基本的功能保持在内核。

微内核 大内核
优点 结构清晰,方便维护 高性能
缺点 需要频繁的在用户态和核心态之间切换,性能低 内核代码庞大,结构混乱,难以维护

6.中断和异常

中断机制的诞生:

发生中断就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(进程切换、分配I/O设备等)需要特权指令,以此CPU需要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,从而使操作系统获得计算机的控制权。

中断的分类:

内中断(也称异常、例外、陷入),外中断(中断—狭义的中断)。区分内外中断是依据信号来源是来自CPU的外部还是内部而判断的。

内中断 外中断
具体实例 自愿中断—指令中断 外设请求、人工干预
强迫中断—硬件故障、软件中断

外中断的处理过程:

保护被中断进程的CPU环境,处理完成后恢复原有的CPU环境并推出中断。

7.系统调用

程序接口:由一组系统调用组成。应用程序通过系统调用请求操作系统的服务,系统中的各种共享资源都由操作系统统一管理。所以用户程序中,凡是与资源相关的操作,都必须通过系统调用向操作系统提供服务请求,由操作系统完成。系统调用的相关处理需要在核心态进行。

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

系统调用是为了方便使用操作系统的接口,而库函数则是为了人们编程的方便。

系统调用的过程:

传递系统调用参数—>执行陷入指令(用户态)—>执行系统调用和相应服务程序(核心态)—>返回用户程序

Tips:

1、陷入指令在用户态执行,执行陷入指令引发内中断,从而CPU进入核心态。

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

3、陷入指令是唯一一个只能在用户态下执行而不能在核心态下执行的指令。

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