操作系统 (OS) 是管理计算机硬件资源并为计算机程序提供通用服务的软件集合。 当您开始使用计算机系统时,操作系统 (OS) 充当您与计算机硬件之间的接口。 操作系统实际上是一个低级的软件,属于系统软件,支持计算机的基本功能,如内存管理、任务调度和控制外围设备等。
什么是操作系统?
操作系统 (OS) 是计算机用户和计算机硬件之间的接口。 操作系统是一种软件,它执行所有基本任务,如文件管理、内存管理、进程管理、处理输入和输出,以及控制磁盘驱动器和打印机等外围设备。
通常,计算机系统由以下组件组成:
- 计算机用户是使用整个计算机系统的用户。
- 应用软件是用户直接用来执行不同活动的软件。 这些软件简单易用,例如浏览器、Word、Excel、不同的编辑器、游戏等。这些软件通常使用高级语言编写,例如 Python、Java 和 C++。
- 系统软件是性质更复杂、更接近计算机硬件的软件。 这些软件通常用汇编语言等低级语言编写,包括操作系统(Microsoft Windows、macOS 和 Linux)、编译器和汇编器等。
- 计算机硬件包括显示器、键盘、CPU、磁盘、内存等。
操作系统实例:
windows:电脑,傻瓜系统,贼占内存
linux:基于 Unix 的最受欢迎的操作系统,安全,迅速,占存小,程序员必备,搞虚拟机给老子电脑搞死机了,气死。
mac:电脑,基于Unix,富哥专用,比win好使
ios:手机,富哥专用
android:基于linux,手机平板,平民产品
多年来,操作系统一直在发展。 在 1950 年代,计算机仅限于像计算器一样一次运行一个程序,但在接下来的几十年中,计算机开始包含越来越多的软件程序,有时称为库,它们构成了当今操作系统的基础。
操作系统 - 概述
操作系统 (OS) 是计算机用户和计算机硬件之间的接口。 操作系统是一种软件,它执行所有基本任务,如文件管理、内存管理、进程管理、处理输入和输出,以及控制磁盘驱动器和打印机等外围设备。
操作系统是使应用程序能够与计算机硬件交互的软件。 包含操作系统核心组件的软件称为内核。
操作系统的主要目的是使应用程序(spftwares)能够与计算机硬件交互并管理系统的硬件和软件资源。
操作系统是支持计算机基本功能的低级软件,例如调度任务和控制外围设备。
操作系统是充当用户和计算机硬件之间的接口并控制各种程序的执行的程序。
操作系统(OS)是管理计算机硬件、软件资源并为计算机程序提供通用服务的系统软件。
以下是操作系统的一些重要功能。
- 内存管理
- 处理器管理
- 设备管理
- 文件管理
- 网络管理
- 安全
- 控制系统性能
- 作业监听
- 错误检测帮助
- 其他软件和用户之间的协调
一个操作系统有以下 8 个组件:
- 流程管理
- I/O 设备管理
- 文件管理
- 网络管理
- 主存储器管理
- 辅助存储管理
- 安全管理
- 命令解释器系统
讨论一些最常用的重要操作系统类型。
批处理操作系统:
批处理操作系统的用户不直接与计算机交互。 每个用户在诸如打孔卡之类的离线设备上准备他的工作并将其提交给计算机操作员。 为了加快处理速度,具有相似需求的作业被分批处理并作为一个组运行。 程序员将他们的程序留给操作员,然后操作员将具有相似要求的程序分批进行分类。
批处理系统的问题如下 −
- 用户与作业之间缺乏互动。
- CPU 经常处于空闲状态,因为机械 I/O 设备的速度比 CPU 慢。
- 难以提供所需的优先级。
分时操作系统:
分布式系统使用多个中央处理器为多个实时应用程序和多个用户提供服务。 数据处理作业相应地分布在处理器之间。
处理器通过各种通信线路(如高速总线或电话线)相互通信。 这些被称为松散耦合系统或分布式系统。 分布式系统中的处理器可能在大小和功能上有所不同。 这些处理器被称为站点、节点、计算机等。
分布式系统的优点如下 −
- 借助资源共享功能,一个站点的用户可以使用另一个站点的可用资源。
- 通过电子邮件加快彼此之间的数据交换。
- 如果分布式系统中的一个站点出现故障,其余站点可能会继续运行。
- 为客户提供更好的服务。
- 减少主机上的负载。
- 减少数据处理的延迟。
网络操作系统:
网络操作系统在服务器上运行,并为服务器提供管理数据、用户、组、安全性、应用程序和其他网络功能的能力。 网络操作系统的主要目的是允许网络中的多台计算机之间共享文件和打印机访问,通常是局域网 (LAN)、专用网络或其他网络。
网络操作系统的示例包括 Microsoft Windows Server 2003、Microsoft Windows Server 2008、UNIX、Linux、Mac OS X、Novell NetWare 和 BSD。
网络操作系统的优点如下 −
- 集中式服务器高度稳定。
- 安全性由服务器管理。
- 新技术和硬件的升级可以轻松集成到系统中。
- 可以从不同位置和不同类型的系统远程访问服务器。
网络操作系统的缺点如下 −
- 购买和运行服务器的成本很高。
- 大多数操作都依赖于中心位置。
- 需要定期维护和更新。
实时操作系统:
实时系统被定义为一种数据处理系统,其中处理和响应输入所需的时间间隔非常小,以至于它可以控制环境。 系统响应输入和显示所需更新信息所花费的时间称为响应时间。 所以在这种方法中,与在线处理相比,响应时间非常短。
当对处理器的操作或数据流有严格的时间要求时使用实时系统,并且实时系统可以用作专用应用程序中的控制设备。 实时操作系统必须具有明确定义的固定时间限制,否则系统将失败。 例如,科学实验、医学影像系统、工业控制系统、武器系统、机器人、空中交通管制系统等。
有两种类型的实时操作系统。
硬实时系统
硬实时系统保证关键任务按时完成。 在硬实时系统中,二级存储受到限制或丢失,数据存储在 ROM 中。 在这些系统中,几乎找不到虚拟内存。
软实时系统
软实时系统的限制较少。 一个关键的实时任务优先于其他任务并保持优先级直到它完成。 与硬实时系统相比,软实时系统的实用性有限。 例如,多媒体、虚拟现实、海底探索和行星探测器等高级科学项目等。
操作系统————服务:
以下是操作系统提供的一些常见服务 −
- 程序执行
- I/O 操作
- 文件系统操作
- 通讯
- 错误检测
- 资源分配
- 防护
操作系统属性:
- 批处理
- 多任务处理
- 多程序设计
- 交互性
- 实时系统
- 分布式环境
- 后台处理
操作系统进程:
进程基本上是一个正在执行的程序。 进程的执行必须按顺序进行。
进程被定义为一个实体,它代表了系统中要实现的基本工作单元。
简单来说,我们将计算机程序写在一个文本文件中,当我们执行这个程序时,它就变成了一个进程,执行程序中提到的所有任务。
当一个程序被加载到内存中成为一个进程时,它可以分为四个部分——栈、堆、文本和数据。 上图显示了主内存中进程的简化布局
Stack 进程栈包含方法/函数参数、返回地址和局部变量等临时数据。
|
进程生命周期
当一个进程执行时,它会经历不同的状态。 这些阶段在不同的操作系统中可能会有所不同,而且这些状态的名称也不规范。
一般来说,一个进程一次可以有以下五种状态之一。
S.N. | 状态 & 描述 |
---|---|
1 | Start 这是首次启动/创建进程时的初始状态。 |
2 | Ready 进程正在等待分配给处理器。 就绪进程正在等待操作系统分配给它们的处理器,以便它们可以运行。 进程可能在 Start 状态之后或在运行时进入此状态,但被调度程序中断以将 CPU 分配给其他进程。 |
3 | Running 一旦操作系统调度程序将进程分配给处理器,进程状态将设置为运行,处理器执行其指令。 |
4 | Waiting 如果进程需要等待资源,例如等待用户输入或等待文件可用,则进入等待状态。 |
5 | Terminated or Exit 一旦进程完成执行,或者被操作系统终止,它就会进入终止状态,等待从主内存中删除。 |
进程控制块 (PCB)
进程控制块是操作系统为每个进程维护的数据结构。 PCB 由整数进程 ID (PID) 标识。 PCB 保留了跟踪过程所需的所有信息,如下表所示 −
S.N. | 信息 & 描述 |
---|---|
1 | Process State 进程的当前状态,即它是否准备好、正在运行、等待或其他。 |
2 | Process privileges 这是允许/禁止访问系统资源所必需的。 |
3 | Process ID 操作系统中每个进程的唯一标识。 |
4 | Pointer 指向父进程的指针。 |
5 | Program Counter 程序计数器是一个指向该进程要执行的下一条指令地址的指针。 |
6 | CPU registers 需要存储进程以执行运行状态的各种 CPU 寄存器。 |
7 | CPU Scheduling Information 进程优先级和调度进程所需的其他调度信息。 |
8 | Memory management information 这包括页表、内存限制、段表等信息,具体取决于操作系统使用的内存。 |
9 | Accounting information 这包括用于进程执行的 CPU 量、时间限制、执行 ID 等。 |
10 | IO status information 这包括分配给进程的 I/O 设备列表。 |
PCB的架构完全依赖于操作系统,在不同的操作系统中可能包含不同的信息。 这是PCB的简化图 −
PCB 在进程的整个生命周期内都会被维护,一旦进程终止就会被删除。
操作系统--进程调度
进程调度是进程管理器的活动,它处理从 CPU 中移除正在运行的进程并根据特定策略选择另一个进程。
进程调度是多道程序操作系统的重要组成部分。 此类操作系统允许一次将多个进程加载到可执行内存中,并且加载的进程使用时分复用共享 CPU。
- 非抢占式: 在进程完成执行之前,不能从进程中获取资源。 当正在运行的进程终止并进入等待状态时,就会发生资源切换。
- 抢占式: 这里操作系统将资源分配给进程一段固定的时间。 在资源分配过程中,进程从运行状态切换到就绪状态或从等待状态切换到就绪状态。 发生这种切换是因为 CPU 可能会优先考虑其他进程,并将优先级较高的进程替换为正在运行的进程。
操作系统维护以下重要的进程调度队列 −
-
作业队列 − 这个队列保存了系统中的所有进程。
-
就绪队列 − 该队列保留了一组驻留在主内存中的所有进程,准备好并等待执行。 一个新进程总是放在这个队列中。
-
设备队列 − 由于 I/O 设备不可用而阻塞的进程构成此队列。
调度器
调度程序是一种特殊的系统软件,它以各种方式处理进程调度。 他们的主要任务是选择要提交到系统中的作业并决定运行哪个进程。 调度器分为三种类型 −
- 长期调度程序:作业调度器
- 短期调度程序:cpu调度器
- 中期调度程序:交换
操作系统调度算法:
- 先到先得 (FCFS) 调度
- 最短作业优先 (SJN) 调度
- 优先级调度
- 最短剩余时间
- 循环 (RR) 调度
多线程:
什么是线程?
线程是通过进程代码的执行流,它有自己的程序计数器来跟踪接下来要执行的指令、保存当前工作变量的系统寄存器以及包含执行历史记录的堆栈。
线程与其对等线程共享很少的信息,例如代码段、数据段和打开的文件。 当一个线程改变一个代码段内存项时,所有其他线程都会看到。
线程也称为轻量级进程。 线程提供了一种通过并行性提高应用程序性能的方法。 线程代表了一种通过减少开销来提高操作系统性能的软件方法,线程等效于经典进程。
每个线程只属于一个进程,并且没有线程可以存在于进程之外。 每个线程代表一个单独的控制流。 线程已成功用于实现网络服务器和 Web 服务器。 它们还为在共享内存多处理器上并行执行应用程序提供了合适的基础。
-
用户级线程 − 用户管理的线程。
-
内核级线程 − 操作系统管理的线程作用于内核,一个操作系统核心。
I/O:
操作系统的一项重要工作是管理各种 I/O 设备,包括鼠标、键盘、触摸板、磁盘驱动器、显示适配器、USB 设备、位图屏幕、LED、模数转换器 , On/off 开关、网络连接、音频 I/O、打印机等。
I/O 系统需要接收应用程序 I/O 请求并将其发送到物理设备,然后接收从设备返回的任何响应并将其发送到应用程序。 I/O 设备可分为两类 −
-
块设备 − 块设备是驱动程序通过发送整个数据块与之通信的设备。 例如,硬盘、USB 摄像头、Disk-On-Key 等。
-
字符设备 − 字符设备是驱动程序通过发送和接收单个字符(字节、八位字节)与之通信的设备。 比如串口、并口、声卡等
I/O 软件通常分为以下几层 −
-
用户级别的库 − 这为用户程序提供了简单的接口来执行输入和输出。 例如,stdio 是 C 和 C++ 编程语言提供的库。
-
内核级模块 − 这提供了设备驱动程序与设备控制器和设备驱动程序使用的设备独立 I/O 模块进行交互。
-
硬件 − 这一层包括实际的硬件和硬件控制器,它们与设备驱动程序交互并使硬件活跃。