iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >30 张图详解操作系统总结!
  • 336
分享到

30 张图详解操作系统总结!

2023-08-03 18:08:29 336人浏览 薄情痞子
摘要

一、概述基本特征1. 并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。2. 共享共享是指系统中


一、概述

基本特征

1. 并发

并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。

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

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

2. 共享

共享是指系统中的资源可以被多个并发进程共同使用。

有两种共享方式:互斥共享和同时共享。

互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。

3. 虚拟

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

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

多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。

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

4. 异步

异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

基本功能

1. 进程管理

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

2. 内存管理

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

3. 文件管理

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

4. 设备管理

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

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

系统调用

如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。

30 张图详解操作系统总结!

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

30 张图详解操作系统总结!

大内核和微内核

1. 大内核

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

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

2. 微内核

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

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

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

30 张图详解操作系统总结!

中断分类

1. 外中断

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

30 张图详解操作系统总结!

2. 异常

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

3. 陷入

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

二、进程管理

进程与线程

1. 进程

进程是资源分配的基本单位。

进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。

30 张图详解操作系统总结!

2. 线程

线程是独立调度的基本单位。

一个进程中可以有多个线程,它们共享进程资源。

QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 Http 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。

30 张图详解操作系统总结!

3. 区别

Ⅰ 拥有资源

进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。

Ⅱ 调度

线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

Ⅲ 系统开销

由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。

Ⅳ 通信方面

线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC。

进程状态的切换

30 张图详解操作系统总结!

  • 就绪状态(ready):等待被调度

  • 运行状态(running)

  • 阻塞状态(waiting):等待资源

应该注意以下内容:

  • 只有就绪态和运行态可以相互转换,其它的都是单向转换。就绪状态的进程通过调度算法从而获得 CPU 时间,转为运行状态;而运行状态的进程,在分配给它的 CPU 时间片用完之后就会转为就绪状态,等待下一次调度。

  • 阻塞状态是缺少需要的资源从而由运行状态转换而来,但是该资源不包括 CPU 时间,缺少 CPU 时间会从运行态转换为就绪态。

进程调度算法

不同环境的调度算法目标不同,因此需要针对不同环境来讨论调度算法。

1. 批处理系统

批处理系统没有太多的用户操作,在该系统中,调度算法目标是保证吞吐量和周转时间(从提交到终止的时间)。

1.1 先来先服务 first-come first-serverd(FCFS)

非抢占式的调度算法,按照请求的顺序进行调度。

有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。

1.2 短作业优先 shortest job first(SJF)

非抢占式的调度算法,按估计运行时间最短的顺序进行调度。

长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。

1.3 最短剩余时间优先 shortest remaining time next(SRTN)

最短作业优先的抢占式版本,按剩余运行时间的顺序进行调度。当一个新的作业到达时,其整个运行时间与当前进程的剩余时间作比较。如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。否则新的进程等待。

2. 交互式系统

交互式系统有大量的用户交互操作,在该系统中调度算法的目标是快速地进行响应。

2.1 时间片轮转

将所有就绪进程按 FCFS 的原则排成一个队列,每次调度时,把 CPU 时间分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 时间分配给队首的进程。

时间片轮转算法的效率和时间片的大小有很大关系:

  • 因为进程切换都要保存进程的信息并且载入新进程的信息,如果时间片太小,会导致进程切换得太频繁,在进程切换上就会花过多时间。

  • 而如果时间片过长,那么实时性就不能得到保证。

30 张图详解操作系统总结!

2.2 优先级调度

为每个进程分配一个优先级,按优先级进行调度。

为了防止低优先级的进程永远等不到调度,可以随着时间的推移增加等待进程的优先级。

2.3 多级反馈队列

一个进程需要执行 100 个时间片,如果采用时间片轮转调度算法,那么需要交换 100 次。

多级队列是为这种需要连续执行多个时间片的进程考虑,它设置了多个队列,每个队列时间片大小都不同,例如 1,2,4,8,..。进程在第一个队列没执行完,就会被移到下一个队列。这种方式下,之前的进程只需要交换 7 次。

每个队列优先权也不同,最上面的优先权最高。因此只有上一个队列没有进程在排队,才能调度当前队列上的进程。

可以将这种调度算法看成是时间片轮转调度算法和优先级调度算法的结合。

30 张图详解操作系统总结!

3. 实时系统

实时系统要求一个请求在一个确定时间内得到响应。

牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧...
登录后复制

--结束END--

本文标题: 30 张图详解操作系统总结!

本文链接: https://www.lsjlt.com/news/365648.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 30 张图详解操作系统总结!
    一、概述基本特征1. 并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。2. 共享共享是指系统中...
    99+
    2023-08-03
  • Linux系统下Git操作命令总结
    本篇内容主要讲解“Linux系统下Git操作命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统下Git操作命令总结”吧!显示当前的配置信息代码如下:git config --l...
    99+
    2023-06-12
  • 详解C#操作XML的方法总结
    本文的主要模块为: 1.生成xml文件 2.遍历xml文件的节点信息 3.修改xml文件的节点信息 4.向xml文件添加节点信息 5.删除指定xml文件的节点信息 假设我们需要设计出...
    99+
    2022-11-13
    C#操作XML方法 C#操作XML C# XML
  • java 操作elasticsearch详细总结
    一、前言 上一篇我们通过kibana的可视化界面,对es的索引以及文档的常用操作做了毕竟详细的总结,本篇将介绍如何使用java完成对es的操作,这也是实际开发中将要涉及到的。 二、java操作es的常用模式 目前,开发中使用java操作...
    99+
    2023-09-02
    java 操作es详细总结 java 操作es springboot整合es
  • Ubuntu系统图形化界面操作时的常用快捷键总结
    本篇内容主要讲解“Ubuntu系统图形化界面操作时的常用快捷键总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu系统图形化界面操作时的常用快捷键总结”吧!键盘类1.先同时按住 Alt...
    99+
    2023-06-13
  • Linux操作系统详解(最详细)
    Linux操作系统 文章目录 Linux操作系统@[toc]一. linux操作系统的基本介绍二. Linux操作系统的安装三. Linux的目录结构四. Linux系统的基本操作1. ...
    99+
    2023-09-01
    linux unix 服务器 java
  • JavaScript数组方法-系统性总结详解
    目录数组常用方法数组元素增添和删除操作数组头部操作数组尾部任意位置增删数组拼接数组转换成字符串截取数组数组排序方法排序顺序翻转数组迭代方法数组遍历查找返回值为下标返回值为内容数组遍历...
    99+
    2024-04-02
  • 总结ElasticSearch基本操作!非常详细!
    es下载地址IK分词器下载地址索引创建索引 对比关系型数据库,创建索引就等同创建数据库 PUT请求 http://127.0.0.1:9200/shopping查询索引 GET请求 http://127.0.0.1:9200/...
    99+
    2023-05-14
    ElasticSearch
  • Oracle RMAN操作汇总详解
    RMAN(Recovery Manager):恢复管理器 RMAN概念: RMAN: Recovery Manager,是备份和恢复数据库的管理工具建立备份和恢复的server process,在o...
    99+
    2024-04-02
  • Windows7操作系统安装过程图解
     Windows 7 的安装非常简单,只需少量操作即可完成;  1、安装 Windows 7  1)开机设置好从光盘启动,放入安装盘启动计算机,也可以开机的时候按 F2/F12 选择启动设备;    2)稍等出来安装对话...
    99+
    2023-06-07
    Windows7 操作系统 安装过程 安装 过程
  • win7 64位操作系统中Oracle 11g + plsql安装教程详解(图解)
    先去网上把下面列表里的文件下载下来,百度一搜索到处都是~~~ 我来解释一下以上目录都是什么; instantclient-basic-win32-11.2.0.1.0.zip 这个文件是配置文件,现在先不...
    99+
    2024-04-02
  • Fuchsia 操作系统的四层结构
    最近很多朋友很关注 Fuchsia OS 操作系统,也有很多朋友关心它的开发,今天我们就来讲讲它的结构,在描述 Fuchsia OS的结构的时候,谷歌使用了“层蛋糕”的比喻,原文是 Layer Cake。Fuchsia OS是整个项目的名称...
    99+
    2023-06-05
  • 操作系统的Hosts文件的详细介绍与解析(图文)
    一、什么是Hosts文件?    hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名映射到相应的IP地址。hosts文件通常用于补充或取代网络中DNS的功能。和DNS...
    99+
    2023-05-26
    Hosts文件 图文 文件 介绍 解析 Hosts
  • 操作系统崩盘不慌张:文件系统修复秘笈大公开
    1. 识别文件系统类型 修复文件系统的第一步是确定所使用的文件系统类型。常见的类型包括 NTFS(Windows)、FAT32(旧版 Windows 和闪存驱动器)和 Ext4(Linux)。您可以使用以下命令在 Windows 中检查文...
    99+
    2024-04-02
  • MySQL体系结构图详解
    体系结构图如下: 连接层 思想 为解决资源的频繁分配﹑释放所造成的问题,为数据库连接建立一个“缓冲池”。 原理 预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使...
    99+
    2024-04-02
  • 解构操作系统文件操作:深入浅出的技术详解
    操作系统文件操作是任何计算机程序的基本组成部分,它允许程序与计算机存储设备上的文件进行交互。理解文件操作的原理对于开发高效和可靠的软件至关重要。 文件描述符 操作系统使用文件描述符来管理程序打开的文件。每个文件描述符代表一个打开的文件,...
    99+
    2024-02-29
    文件操作、操作系统、系统调用、文件描述符、文件权限
  • win7操作系统下安装vs6.0全程图解
      一、在安装文件夹下,选择setup.exe   会弹出兼容性的对话框,   选择是   二、正常安装其他部分,直到出现   选择安装类型界面,选择“Custom(自定制)”   选择&ldq...
    99+
    2023-06-02
    win7 安装vs6.0 全程
  • Win8系统定位功能详细操作图文教程
      微软在设计的时候为Win8系统加入了一个特别的功能,即系统定位,这个服务不提供超想、高度、速度、地址等,但却给用户的生活、工作带来了很多方便的地方,下面我们来看下这个定位功能的详细操作。   设置Win8系统定位功能...
    99+
    2023-06-06
    Win8 定位 功能 图文 系统
  • Python一些基本的图像操作和处理总结
    一、Python图像处理PIL库 1.1 转换图像格式 # PIL(Python Imaging Library) from PIL import Image plt.rcPar...
    99+
    2024-04-02
  • FreeRTOS实时操作系统结构示例
    目录1.查找相关文档页2.获取RTOS源代码3.FreeRTOS源码目录结构移植层目录举例:演示例程目录举例:4.编译工程5.运行演示例程 FreeRTOS可以被移植到很多...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作