操作系统之一:入门概述

操作系统入门概述

一、概述
1.1操作系统概念

在介绍操作系统的概念之前,我们先来看一下平时生活中的计算机系统的层次结构:

我们在购入一台机器后,如何使用QQ?

买一台裸机,然后基于硬件底层安装Windows操作系统,再在Windows操作系统上安装QQ,然后就可以开启软件,并使用QQ了。

在这里插入图片描述

常见的操作系统有Windows、Linux、MacOS、安卓、Linux

  • 什么是操作系统?
    • 是系统最基本、最核心的软件,属于系统软件
    • 控制和管理整个计算机硬件和软件资源
    • 合理的组织、调度计算机的工作与资源的分配
    • 为用户和其它软件提供方便的接口和环境

从理解上来说,因为现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成,但是我们并不会直接和这些硬件打交道,所以在硬件的基础上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为操作系统,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型。

1.2操作系统的功能和目标

问题一:操作系统作为系统资源的管理者(包括软件、硬件、文件等),需要提供什么功能?

问题二:操作系统作为用户与计算机硬件之间的接口,要为其上层的用户、应用程序提供简单易用的服务,需要实现什么功能?

问题三:操作系统作为最接近硬件的层次,需要在纯硬件的基础上实现什么功能?

作为系统资源的管理者

管理软硬件资源,合理的组织、调度计算机的工作与资源的分配。
在这里插入图片描述

  • 1、处理机(CPU)管理

    • 在多道程序环境下,cpu的分配和运行都以进程或线程为基本单位,因此对cpu的管理可以理解为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
  • 2、存储器管理

    • 为多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享、内存扩充等问题。
      在这里插入图片描述
  • 3、文件管理

    • 计算机中所有的信息都是以文件的形式存在,操作系统中负责文件管理的部分称为文件系统,文件系统包括文件存储空间的管理、目录管理、文件读写管理和保护等。
  • 4、设备管理

    • 设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓存管理、设备分配、设备处理和虚拟设备等功能。

在这里插入图片描述

举例:用QQ和朋友进行视频聊天的过程

①在各个文件夹中找到QQ安装的位置(例如:D:/Tencent/QQ/bin):逐层打开文件夹,找到QQ.exe这个程序(可执行文件)的存放位置,即文件管理

②双击打开QQ.exe:将该程序的相关数据放入内存,即存储器管理

③QQ程序正常运行:对应的进程被CPU处理,即处理机管理

④开始和朋友视频聊天:需要将摄像头设备分配给进程,然后再让CPU处理,即设备管理

补充:进程是一个程序的执行过程,执行前需要将该程序放到内存中,才能被CPU处理

作为用户和计算机硬件之间的接口

为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口。

操作系统提供的接口分为两类:命令接口和程序接口

命令接口:允许用户直接使用,利用这些操作命令来组织和控制作业的执行

程序接口:允许用户通过程序间接使用,编程人员可以使用它们来请求操作系统服务

GUI:现代操作系统中最流行的图形用户接口
在这里插入图片描述

  • 1、命令接口
    在这里插入图片描述

联机命令接口=交互式命令接口
在这里插入图片描述

在命令解释器中,输入time,系统会返回当前的时间,然后系统会把操作权限再返回给用户,让用户输入一个希望的新时间,这就是一个典型的交互式命令。即用户说一句,操作系统做一句,然后用户再说,操作系统再做,整个过程中,用户和操作系统是不断的在进行交互的。

脱机命令接口=批处理命令接口

用户输入一堆指令,操作系统运行一堆指令,在操作系统运行这些命令的时候用户不可干预。

  • 2、程序接口

由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,只能通过用户程序间接调用。

例如使用各种外部设备、申请分配和回收内存以及其它各种要求。

在这里插入图片描述

作为最接近硬件的层次

需要提供的功能和目标:实现对硬件机器的拓展

  • 裸机:没有任何软件支持的计算机,在裸机上安装的操作系统可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
  • 虚拟机(扩容机器):指覆盖了软件的机器。
    在这里插入图片描述

类比

硬件:锤子、锯子、木头、钉子

操作系统:优秀的工匠

操作系统对硬件系统的拓展:通过优秀工匠,这些简单的原来可以组成房子、帆船等

我们普通的用户可以直接使用木匠提供的这些物件,并且无需关系这些东西在底层是怎么组织起来工作的。

二、操作系统的特征

在这里插入图片描述

2.1并发
  • 并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的。

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

操作系统的并发性指计算机系统中同时存在着多个运行着的程序。

一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行。(这些程序微观上是交替执行的,但是在宏观上因为我们的CPU处理速度很快,所以看起来就像是在同时执行)。

当今的计算机,一般都是多核CPU,比如intel的CORE i3,就是4核CPU,这意味着同一时刻可以有4个程序并行操作,但是操作系统的并发性依然必不可少,当代人使用计算机绝对有4个以上的程序需要同时工作。

2.2共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
在这里插入图片描述

  • 互斥共享

    • 计算机中的某个资源在一段时间内只能允许一个进程访问,别的进程没有使用权
    • 临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备以及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享。
    • 举例:使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程。
  • 同时共享

    • 这里的同时往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的,只是cpu的处理速度很快,我们感觉不到,在宏观上感觉是在同时进行。
    • 计算机中的某个资源在一段时间内可以同时允许多个进程访问。
    • 举例:比如QQ在发送文件A,微信在发送文件B,宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,但是在微观上两个进程A和B是交替进行访问磁盘,只是时间太短,CPU处理速度太快,我们感觉不到。
    • 注意:有时候多个进程可能真的是同时进行资源访问,比如玩游戏时可以放音乐,游戏声音和音乐声音都能听见。
2.3并发和共享的关系

并发性是指计算机系统中同时存在着多个运行着的程序

共享性是指系统中的资源可以供内存中多个并发执行的进程共同使用
在这里插入图片描述

所以说,并发和共享互为存在条件。

2.3虚拟

什么叫虚拟呢?

其实虚拟就是把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户所感受到的。

  • 1、虚拟是把一个物理上的实体变为若干逻辑上的对应物
  • 2、物理实体是实际存在的,而后者是用户感觉上的事务
  • 3、虚拟技术:用于实现虚拟的技术
  • 4、虚拟处理器(CPU):通过多道程序设计技术,采用让多道程序并发执行的方法,分时来使用一个CPU,实际物理上只有一个CPU,但是用户感觉可能有多个CPU
    • 多道程序设计技术:指在计算机内存中同时存放几道相互独立的程序,使他们在管理程序控制之下,相互穿插的运行,两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。这就称为多道程序设计技术,特征是:多道、宏观上并行、微观上串行。
  • 5、虚拟存储器:从逻辑上扩充存储器容量,用户感觉存在,但实际不存在的存储器。
  • 6、虚拟设备:将一台物理设备虚拟为逻辑上的多台设备,使多个用户在同一时间段内访问同一台设备,即同时共享,用户宏观上感觉是同时的,但是实际上是微观讲题访问同一台设备的。

举例1:在这里插入图片描述

这是因为我们的操作系统运用了虚拟存储器技术,实际只有4GB的内存,在用户看来似乎远远大于4GB。

这其实也就是虚拟技术中的“空分复用技术”

举例2:某个单核CPU的计算机中,用户打开了以下软件:

在这里插入图片描述

问题是:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?

这是因为我们的运用了虚拟处理器技术,实际上只有一个单核CPU,在用户看来似乎有6个CPU在同时为自己服务。

这就是虚拟技术中的“时分复用技术”

在这里插入图片描述

2.4异步
  • 定义:与同步对应,异步指的是**让CPU暂时搁置当前请求的响应,处理下一个请求,当通过轮询或其他方式得到回调的通知后,开始运行。**即多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一管到底的,而是走走停停的,它以不可预知的速度向前推进。

  • 举例:比如A进程正在占用CPU进行计算,B进程这时也想占用CPU计算,可是我们只有一个CPU,那么B进程就只有等,等A进程算完去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没算完,A进程从磁盘取出资源了,A进程发现B进程这时在占用CPU,这时A进程就需要等待,等B进程算完后再继续进入到CPU中进行计算。

三、操作系统的发展和分类

3.1分类
手工操作阶段
  • 工作方式

用户在计算机上算题的所有工作都要人工进行干预,如程序到的装入、运行、结果的输出等。

  • 缺点

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

批处理阶段
单道批处理系统
  • 工作方式:引入脱机输入技术(用磁带完成),并监督程序(操作系统雏形)控制作业的输入和输出。

  • 特征

    • 自动性:磁带上的作业自动逐个运行
    • 顺序性:作业完成的顺序与进入内存的顺序在正常情况下相同
    • 单道性:内存中仅有一道程序运行
  • 优点:缓解人机矛盾

  • 缺点:资源利用率依然很低

多道批处理系统
  • 工作方式:在内存中多道程序并发执行,在CPU中交替进行

  • 特征

    • 多道:内存中同时放入多道相互独立的程序
    • 宏观上并行:进入系统的多道程序都处在运行的过程中,给人一种同时运行的感觉
    • 微观上串行:内存中的多道程序轮流占有CPU,交替执行
  • 优点:多道程序并发执行、资源利用率高

  • 缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)

分时操作系统
  • 工作方式:计算机以时间片为单位轮流为各个用户/作业提供服务,各个用户通过终端与计算机进行交互。

  • 特征

    • 同时性:也称多路性,指允许多个终端用户同时使用一台计算机
    • 交互性:用户能够与系统进行人机交互
    • 独立性:系统中的多个用户可以彼此独立的进行操作,互不干扰,单个用户感受不到其他用户的存在
    • 及时性:因为有了交互,采用时间片轮流为多个终端服务,用户请求能在很短时间内获得响应
  • 优点:解决了人机交互,用户请求被即时响应

  • 缺点:对于一切突发紧急情况不能优先及时处理

实时操作系统
  • 工作方式:能够优先响应一些紧急的任务,不用等待时间片排队
  • 分类
    • 硬实时系统
      • 对某个动作必须绝对的在规定时间内完成
      • 如:导弹系统、股票交易、飞行自动驾驶系统
    • 软实时系统
      • 对某个动作可以接收偶尔违反时间规定,且不会引起任何永久性的损害
      • 如:飞机订票系统,银行管理系统
网络操作系统
  • 工作方式:把计算机网络中的各台计算机有机的结合起来,提供统一、经济而有效的使用各台计算机的方法、实现各台计算机之间的数据互相传送
  • 特点:有主从关系、网络中资源共享、网络中的计算机通过协议通信
分布式操作系统
  • 工作方式:系统中的各计算机相互协同并行完成同一任务

  • 特征

    • 系统中任意两台计算机通过通信方式交换信息
    • 系统中的计算机都具有同等地位,无主从关系
    • 每台计算机上的资源为所有用户共享
    • 系统中的任意台计算机都可以构成一个子系统,并且还能重构
    • 任何工作都可以分步在几台计算机上,由他们并行工作,协同完成
  • 特点:分步性和并行性

嵌入式操作系统
  • 固化在硬件里面的系统、比如手机、路由器等
  • 特点:完成某一项特定的功能、不具有通用性
个人计算机操作系统
  • 广泛用于文字处理、电子表格、游戏中等
  • 常见的有Windows、Linux等
3.2发展历程

在这里插入图片描述

四、操作系统的运行机制和体系结构

问题:“指令”和我们平时所说的“代码”有什么区别

在这里插入图片描述

简单来说,“指令”就是处理器(CPU)能识别、执行的最基本命令,比如:加法指令就是让CPU进行加法运算。

4.1运行机制
两种指令
  • 特权指令
    • 不允许用户直接用的命令,比如:I/O指令、中断指令、存取用于内存保护的寄存器、内存清零等指令。
  • 非特权指令
    • 加减乘除等普通运算指令
两种处理器状态
  • 核心态(管态):特权指令和非特权指令都可执行
  • 用户态(目态):只能执行非特权指令

我们可以用程序状态寄存器PSW中的某标志位来标识处理器处于什么状态 比如:0表示用户态,1表示核心态

两种程序
  • 内核程序(管理程序):操作系统内核程序是系统管理者,特权指令和非特权指令都可以执行,运行在核心态
  • 用户程序(应用程序):为了保证系统能够安全运行,用户程序只能执行非特权指令,运行在用户态
4.2操作系统内核

内核是计算机配置在底层的软件,是操作系统最基本最核心的部分;实现操作系统内核功能的程序就是内核程序。
在这里插入图片描述

在操作系统的内核中,时钟管理,中断机制,原语等,都是最基本的功能。

  • 时钟管理

    • 第一功能用于计时;向用户提供标准的系统时间;通过时钟中断管理,可以实现进程的切换
    • 例如:分时操作系统中采用时间片轮转制度;实时操作系统中按截止至时间控制运行等
  • 中断机制

    • 初衷是为了提高多道程序运行环境中CPU的利用率;后称为操作系统各操作的基础;
    • 例如:键盘或鼠标信息的输入;进程的管理和调度;系统功能的调用、设备驱动、文件访问等
  • 原语

    • 系统中的设备驱动、cpu切换、进程通信等功能中的部分操作都可定义为原语
    • 特点
      • 是一种特殊的程序,处于操作系统最底层,是最接近硬件的部分
      • 这种程序的运行具有原子性,其操作一气呵成(考虑到系统安全性和便于管理)
      • 程序运行时间都较短,调用频繁
  • 对资源管理的功能

    • 进程管理:进程状态管理、进程调度和分派、创建与撤销进程控制块等
    • 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等
    • 设备管理:缓冲区管理、设备分配和回收等
4.3操作系统的体系结构
  • 大内核
    • 将内核的主要功能模块都作为一个紧密联系的整体运行在核心态
      • 优点:高性能
      • 缺点:内核代码庞大,结构混乱,难以维护
  • 微内核
    • 将内核中最基本的功能保留在内核,而将那些不需要运行在核心态执行的功能转移到用户态执行
      • 优点:内核功能少,结构清晰,便于维护
      • 缺点:需要频繁在用户态和核心态之间切换,性能低

操作系统体系结构类比:

操作系统的体系结构问题与企业的管理问题很相似。

内核就是企业的管理层,负责一些重要的工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接。

大内核:企业初创时体量不大,管理层的人会负责大部分的事情。优点是效率高;缺点是组织结构混乱,难以维护。

微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。优点是组织结构清晰,方便维护;缺点是效率低。

操作系统用户态和核心态的转换

“用户态->核心态”是通过中断实现的,并且中断是唯一途径。

"核心态->用户态"的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。

五、中断和异常

中断机制是为了实现多道程序并发执行而引入的一种技术。

中断的概念和作用

1、当中断发生时,CPU立即进入核心态

2、当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理

3、对于不同的中断信号,会进行不同的处理

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

5.1中断的分类
  • 内中断:也称异常、例外、陷入;信号来源于cpu内部,与当前执行的指令有关。
    • 自愿中断
      • 指令中断:如系统调用时使用的访管指令(又叫陷入指令,trap指令)。
    • 强迫中断
      • 硬件故障:比如缺页
      • 软件中断:比如整数除以0
    • 陷阱、陷入(trap):有意而为之的异常,如系统调用
    • 故障(fault):由错误条件引起的,可能被故障处理程序修复,如缺页。
    • 终止(abort): 不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整数除以0
  • 外中断:信号来源于cpu外部,与当前执行的指令无关。
    • 外设要求:比如I/O操作完成发出的中断信号
    • 人工干预:比如用户强行终止一个进程
5.2中断处理过程

1、每条指令执行结束后,CPU检查是否有外部中断信号

2、如果有外部中断信号,则需要保护被中断进程的CPU环境

3、根据中断信号类型转入相应的中断处理程序

4、恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

六、系统调用

  • 什么是系统调用?有何作用?

系统调用时操作系统提供给应用程序的接口。

作用:应用程序可以通过系统调用(程序接口)请求获得操作系统的服务。

并且系统调用会使处理器从用户态切换到核心态

分类:

设备管理:完成设备的请求、释放、启动等功能

文件管理:完成文件的读、写、创建、删除等功能

进程控制:完成进程的创建、撤销、阻塞、唤醒等功能

进程通信:完成进程之间的消息传递、信号传递等功能

内存管理:完成内存的分配、回收、获取作业占用内存区大小及始地址等功能

文件管理:完成文件的读、写、创建、删除等功能

进程控制:完成进程的创建、撤销、阻塞、唤醒等功能

进程通信:完成进程之间的消息传递、信号传递等功能

内存管理:完成内存的分配、回收、获取作业占用内存区大小及始地址等功能

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

1、系统调用是操作系统向上提供的接口

2、有的库函数是对系统调用的进一步封装

3、当今编写的应用程序大多是通过高级语言提供的库函数间接的进行系统调用

  • 系统调用背后的过程

1、用户程序执行陷入指令(又称访管指令/trap指令),请求操作系统服务

2、操作系统内核程序对系统调用进行相应处理

3、处理完成后,操作系统内核程序将CPU使用权还给用户

系统调用发生在用户态,对系统调用的处理发生在核心态,执行陷入指令会产生内中断,使处理器进入核心态

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值