当前位置: 首页 > news >正文

操作系统知识点(一)

目录

一、概念

1.管理系统资源

2.用户交互

二、特征

1.并发和并行

2.同时共享和互斥共享

3.虚拟

4.异步

三、发展和分类

1.手工操作阶段

2.批处理

(1)单道批处理

(2)多道批处理(操作系统诞生)

3.分时操作系统

4.实时操作系统

(1)硬实时

(2)软实时


一、概念

操作系统是一款管理和控制软件和硬件资源的系统软件。它作为用户与计算机之间的接口,提供了资源管理、人机交互等功能。方便用户快速上手和使用,用户无需关注底层实现细节。

常见的操作系统有:PC端的Windows、Mac Os、Linux…… 和移动端的安卓、ios、鸿蒙……

1.管理系统资源

主要可以分为文件管理、存储器管理、处理机管理、设备管理。

2.用户交互

提供了两种操作模式:图形化模式和命令行模式,可以降低用户的操作难度。

日常生活中使用电脑,看到的电脑的桌面。各种图标实际上就是图形化模式,用户可以通过图形化页面去获得图形化的反馈。(比如打开文件夹)

命令行模式最常见的就是在电脑上使用win+R键,输入cmd进入。

我们可以把命令分为交互式命令和批处理命令。交互式命令就是实时的,用户每输入一条指令,系统就会进行响应。而批处理命令是批量自动化进行的,通过将多条命令实现写入脚本文件中,当用户启动脚本,系统就会自动执行,无需人工干预。

二、特征

分为并发、共享、虚拟、异步。

1.并发和并行

并发指两个及以上的事件在同一时间间隔内发生。而并行指的是两个及以上的事件在同一时刻同时发生。即并发从宏观上看是同时发生的,但是在微观上是交替发生的,当具体到某一时刻时并不是同时发生。

比如在吃饭的时候吃一口饭,再喝一口汤。从宏观来看,吃饭和喝汤同时进行,但具体到某一时刻只在进行一项活动。如果你在做饭的时候,边切菜边唱歌,这就是并行执行。

在通常谈到单核CPU和多核CPU,单核CPU在同一时刻就只能运行一个程序,所以是并发的。而多核CPU,比如4核CPU,再同一时刻可以运行4个程序,这些程序是并行运行的,但是当超过4核时,它其中一些程序也是并发运行的。

计算机系统中看似多个软件同时运行,实际在微观上也是交替运行的,这就是操作系统的并发性。

2.同时共享和互斥共享

系统某些资源可以被多个进程共享使用,但是互斥共享就是一个时间段内只能有一个进程使用。而同时共享就是指一个时间段内可以多个进程“同时共享”,但可能在微观上是交替使用的。

比如在打语音通话的时候,其他人就无法在这段时间内给你打语音通话。这就是互斥共享。有时候你边下载电影,边给别人传送文件,看似同时进行,实际是交替访问硬盘的。这是同时共享。

3.虚拟

将物理资源抽象为多个逻辑实体,用户可以感知到比实际物理资源更丰富、灵活的资源分配方式。

比如单核CPU“同时”运行多个进程。

操作系统中实现虚拟的方式主要有空分复用和时分复用。

4.异步

多个程序并发执行时,有可能因为有限的资源而以不可预知的速度向前推进,并不是一贯到底的。

比如你和你妈都在厨房做饭,家里只有一个炒菜锅,有可能你妈先用锅,这时候你就没法炒菜。你就要在旁边等待。也有可能你先用锅,你妈就需要在旁边等待。这就属于异步。

三、发展和分类

1.手工操作阶段

人机速度矛盾,计算机资源利用率低。

2.批处理

(1)单道批处理

优点:缓解了人机速度的矛盾,资源利用率有所提升。

缺点:内存中仅有一道程序在运行,CPU有大量时间在等待输入输出的完成,资源利用率依然很低。

(2)多道批处理(操作系统诞生)

优点:多道程序并发执行,资源利用率大幅度提升。

缺点:用户响应时间长,用户在任务过程中无法与系统实时交互。

3.分时操作系统

优点:以时间片为基本单位,轮流供各个用户使用。实现了用户和系统之间的即时交互。

缺点:无法优先处理紧急任务,对所有用户平均分摊时间,不区分任务的紧急性。

4.实时操作系统

可以优先处理紧急任务,某些紧急任务不需要时间片排队。特点是及时性和可靠性。

(1)硬实时

系统响应紧急任务之后,必须在严格的时限内完成任务处理。

(2)软实时

处理紧急任务时,偶尔允许超出时间限制。

http://www.dtcms.com/a/111696.html

相关文章:

  • 【YOLO系列(V5-V12)通用数据集-剪刀石头布手势检测数据集】
  • Markdown使用说明
  • 《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 3】【Qemu 运行 低版本linux内核注意事项】
  • Vue2 父子组件数据传递与调用:从 ref 到 $emit
  • Python列表(List)深度解析
  • Java EE期末总结(第二章)
  • CExercise_04_1运算符_4交换两个不同整数的值
  • 算法刷题记录——LeetCode篇(3.2) [第211~212题](持续更新)
  • CExercise_05_1函数_1.1素数(要对键盘录入的数据做参数校验)
  • 游戏引擎学习第204天
  • 使用 .NET 9 和 Azure 构建云原生应用程序:有什么新功能?
  • ArkTs的UI装饰器(自定义组件生命周期、页面组件生命周期、所有UI装饰器使用及示例)
  • C++ | C++11知识点
  • react redux的学习,单个reducer
  • Spring-IOC部分
  • python __init__文件的作用
  • (51单片机)矩阵按键密码锁表白(C语言代码编撰)(矩阵按键教程)(LCD1602浅教程)
  • Python数据结构之有序列表
  • docker使用汇总
  • 【YOLO系列(V5-V12)通用数据集-工程用车检测数据集】
  • MINIQMT学习课程Day8
  • 解锁大数据可视化设计,让数据会 “说话”
  • Docker安装、配置JDK17
  • 程序化广告行业(59/89):广告验证与反作弊实战技巧
  • HTML jQuery 项目 PDF 批注插件库在线版 API 示例教程
  • PostgreSQL的扩展(extensions)-常用的扩展-pg_dirtyread
  • 55.基于springboot+vue的汽车租赁管理系统
  • Flink CDC Pipeline mysql to doris
  • 关于JVM和OS中的指令重排以及JIT优化
  • 小刚说C语言刷题——第14讲 逻辑运算符