【操作系统1】一篇文章便可入门操作系统

操作系统 (Operating System,OS)是一种系统软件,它负责管理计算机的硬件和软件资源。它的主要任务是组织和调度计算机的工作,并分配资源给用户和其他软件。操作系统为用户和软件提供了方便的接口和环境。它是计算机系统中最基本的软件之一。

一、操作系统的目标和功能

1、操作系统作为计算机系统资源的管理者

(1)处理机管理
        在多道程序环境下,进程(或线程)是处理机分配和运行的基本单位。因此,对处理机的管理就是对进程的管理,主要包括进程控制、进程同步、进程通信、死锁处理和调度。进程管理的主要任务是决定进程的创建和撤销时间,管理进程,避免冲突,并实现资源的合理共享。
(2)存储器管理
        给多道程序运行提供环境,方便用户使用,提高内存利用率。包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
(3)文件管理
        操作系统中负责文件管理的部分称为文件系统。包括文件存储空间的管理、目录管理及文件读写管理和保护等。
(4)设备管理
        完成用户的/O请求,方便用户使用各种设备,提高设备的利用率。包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

写个例子:用QQ和朋友视频聊天的过程
Step 1:在各个文件夹中找到 QQ安装的位置(如 D:/Tencent/xx/Bin)
Step 2:双击打开 QQ.exe
Step 3:QQ程序正常运行
Step 4:开始和朋友视频聊天 


上述四个步骤具体分析如下:

Step 1:逐层打开文件夹,找到aa.exe这个程序(可执行文件)的存放位置——文件管理

Step 2:需要把该程序相关数据放入内存——存储器管理

Step 3:对应的进程被处理机(CPU)处理——处理机管理

Step 4:需要将摄像头设备分配给进程——设备管理

2、操作系统作为用户与计算机硬件系统之间的接口

操作系统提供的接口主要分为两类:

 一类是命令接口,用户利用这些操作命令来组织和控制作业的执行,另一类是程序接口,编程人员可以使用它们来请求操作系统服务。

(1)命令接口

使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口

联机命令接口又称交互式命令接口,本接口适用于分时或实时操作系统。当用户输入一条命令后,控制权将移交给操作系统的命令解释程序。该程序负责解释并执行用户输入的命令,以完成相应的功能。操作完成后,用户可以继续输入下一条命令。

脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。脱机用户无法直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,从而间接地控制作业的运行。

(2 ) 程序接口

程序接口,也称为应用程序编程接口(API),由一组系统调用(或广义指令)组成。目前,图形用户界面(GUI)是最为流行的用户接口类型。GUI通过调用底层的程序接口来实现其功能,用户可以通过鼠标点击、键盘输入或者使用快捷键与图形界面进行互动,从而便捷地利用操作系统提供的服务。

3、操作系统实现了对硬件机器的扩展 

操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器;因此,我们通常将覆盖了软件的机器称为扩充机器或虚拟机。将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。

二、操作系统的特征

  1. 并发(Concurrency):并发指两个或多个事件在同一时间间隔内发生。在多道程序环境下,内存装有多道程序,一道程序因 I/O 操作暂停时,CPU 有空档,系统就调度其他程序交替运行,让 CPU 保持忙碌,通过分时实现。以生活举例,9:00 - 10:00 间,9:00 - 9:10 吃面包,9:10 - 9:20 写字,9:20 - 9:30 吃面包,9:30 - 10:00 写字,这段时间里吃面包和写字就是并发,交替开展。并行是同一时刻能完成两种或两种以上工作。好比 9:00 - 10:00 期间,右手写字同时左手吃面包,同一时刻同步动作。
            在单核cpu环境下,宏观有多道程序看似同时执行,微观是分时交替,靠分时实现并发。而 CPU 与 I/O 设备、I/O 设备间可真正并行。实现进程并行需多流水线、多处理机等硬件支持。引入进程,目的之一就是实现程序并发执行,提升系统效率与资源利用率。
            在多核cpu环境下,同时能进行多个程序的执行,多个程序可以并行的执行。

  2. 共享(Sharing):系统资源供多个并发进程共用,分互斥共享(如打印机、磁带机等临界资源,一段时间只许一进程访问,需先申请,用完释放)与同时访问(像磁盘设备、部分重入代码文件,宏观 “同时”、微观 “分时”)。

  3. 虚拟(Virtual):借助虚拟技术把物理实体变逻辑对应物,含时分复用(虚拟处理器,多道程序分时用一处理器,让用户似有专属 CPU)、空分复用(虚拟存储器扩充逻辑容量,虚拟设备将物理 I/O 设备虚拟为多台逻辑设备供多用户用)。

  4. 异步(Asynchronism):多道程序下进程并发但因资源有限走走停停、推进速度不可知,运行环境随机,虽可能出与时间有关错误,但相同环境须保多次运行结果一致。

并发和共享是操作系统的两个最基本特征,它们互为存在条件。资源共享以程序的并发为前提,若系统不允许程序并发执行,资源共享问题便不复存在。反之,若系统无法对资源共享进行有效管理,将影响程序的并发执行,甚至导致无法并发执行。

三、操作系统的发展历程


今天的分享就到这啦😉 

如果我的文章对您有帮助,

 “点赞” “收藏” “关注” 一键三连哦!

想了解更多知识请前往重生之我在VS写bug

如果以上内容有什么问题,欢迎留言,大家一起学习,共同进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

μC/OS-Ⅱ源码学习(6)---事件标志组

快速回顾 μC/OS-Ⅱ中的多任务 μC/OS-Ⅱ源码学习(1)---多任务系统的实现 μC/OS-Ⅱ源码学习(2)---多任务系统的实现(下) μC/OS-Ⅱ源码学习(3)---事件模型 μC/OS-Ⅱ源码学习(4)---信号量 μC/OS-Ⅱ源码学习(5)---消息队列 本文进一步解析事件模型中,事件标志…

【经验分享】OpenHarmony5.0.0-release编译RK3568不过问题(已解决)

问题描述 根据操作手册正常拉取代码,然后编译OpenHarmony5.0.0版本rk3568项目 编译命令 ./build.sh --product-name rk3568 --ccache出现如下报错 然后真正开始出错的位置是下面这句log FAILED: ../kernel/src_tmp/linux-5.10/boot_linux ../kernel/checkpoint/c…

C++重点和练习-----多态

rpg.cpp: #include <iostream>using namespace std;/*模拟一个游戏场景有一个英雄&#xff1a;初始所有属性为1atk,def,apd,hp游戏当中有以下3种武器长剑Sword&#xff1a; 装备该武器获得 1atx&#xff0c;1def短剑Blade&#xff1a; 装备该武器获得 1atk&#xff0c;1…

Qt之点击鼠标右键创建菜单栏使用(六)

Qt开发 系列文章 - menu&#xff08;六&#xff09; 目录 前言 一、示例演示 二、菜单栏 1.MenuBar 2.Menu 总结 前言 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menubar&#xff09;、多个工具栏(toolbars)、一个状态栏(status…

天猫魔盒M17/M17S_超级UI 线刷固件包-可救砖(刷机取消双勾)

在智能电视盒子的领域中&#xff0c;天猫魔盒 M17 以其独特魅力占据一席之地&#xff0c;然而&#xff0c;原厂设置有时难以满足进阶用户的多元需求。此刻&#xff0c;刷机成为开启全新体验的关键钥匙&#xff0c;为您的盒子注入鲜活能量。 一、卓越固件特性概览 此款精心打造的…

Elasticsearch 7.x入门学习-Spring Data Elasticsearch框架

1 Spring Data框架 Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问&#xff0c;并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷&#xff0c;并支持 map-reduce 框架和云计算数据服务。 Spring Data 可以极大的简化 JPA的写法&#xff0c;…

【落羽的落羽 C语言篇】一些常见的字符函数、字符串函数、内存函数

文章目录 一、字符函数1. 字符分类函数2. 字符转换函数 二、字符串函数1. strlen的使用和模拟实现使用模拟实现 2. strcpy的使用和模拟实现使用模拟实现 3. strcat的使用和模拟实现使用模拟实现 4. strcmp的使用和模拟实现使用模拟实现 5. strncpy的使用6. strncat的使用7. str…

JAVA:访问者模式(Visitor Pattern)的技术指南

1、简述 访问者模式(Visitor Pattern)是一种行为型设计模式,允许你将操作分离到不同的对象中,而无需修改对象本身的结构。这种模式特别适合复杂对象结构中对其元素进行操作的场景。 本文将介绍访问者模式的核心概念、优缺点,并通过详细代码示例展示如何在实际应用中实现…

小米自研系统Vela全面开源:开启物联网新时代的技术革新之旅

目录 Vela系统的技术特点 1. 高性能与低功耗的完美平衡 2. 高度可扩展性与模块化设计 3. 强大的安全机制 4. 跨平台兼容性 Vela系统的应用场景 1. 智能家居领域 2. 工业物联网领域 3. 医疗健康领域 4. 智慧城市领域 Vela系统的深远影响 1. 推动物联…

Linux/CentOS编译TensorFlow

很多时候为了方便图省事&#xff0c;是通过pip安装TensorFlow的&#xff0c;然而很不幸运行的服务器不支持AVX指令&#xff0c;引入模块的时候会报错&#xff1a; The TensorFlow library was compiled to use AVX instructions, but these aren’t available on your machine.…

2021陇剑杯——流量分析

JWT简介 JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络应用环境中以一种紧凑的、URL安全的方式传递声明&#xff08;Claims&#xff09;。JWT通常用于身份验证、信息交换以及验证消息的完整性。JWT通过在不…

visual studio 2022 c++使用教程

介绍 c开发windows一般都是visual studio&#xff0c;linux一般是vscode&#xff0c;但vscode调试c不方便&#xff0c;所以很多情况都是2套代码&#xff0c;在windows上用vs开发方便&#xff0c;在转到linux。 安装 1、官网下载vs2022企业版–选择桌面开发–安装位置–安装–…

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana&#xff0c;并且dashboard接入数据 大屏编号地址&#xff1a;Node Exporter Full | Grafana Labs 创建企微机器人 备注&#xff1a;群里若有第三方外部人员不能创建 机器人创建完成&#xff0c;记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…

yolov7-搭建及测试

1.环境配置 参考链接&#xff0c;建立环境 2.YOLOv7代码下载 代码及论文地址&#xff1a; GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors 下载zip后解压 注意&am…

HCIA-Access V2.5_2_2_2网络通信基础_IP编址与路由

网络层数据封装 首先IP地址封装在网络层&#xff0c;它用于标识一台网络设备&#xff0c;其中IP地址分为两个部分&#xff0c;网络地址和主机地址&#xff0c;通过我们采用点分十进制的形式进行表示。 IP地址分类 对IP地址而言&#xff0c;它细分为五类&#xff0c;A,B,C,D,E,…

信号处理相关的东东(学习解惑)

信号处理相关的东东&#xff08;学习解惑&#xff09; 所有内容学习自知乎专栏&#xff0c;https://www.zhihu.com/column/xinhao&#xff0c;写的很好&#xff0c;值得反复学习 时频域分析的一些常用概念 FROM&#xff1a;https://zhuanlan.zhihu.com/p/35742606 1、相加性…

【cocos creator】按照行列数创建格子布局

调用 this.creatLayout(5, 5, this.boxNode, this.rootNode) //限制数量 this.creatLayout(5, 5, this.boxNode, this.rootNode, cc.v3(0, 0), 10, 10, 23) /*** 创建格子布局* param xCount 列数量* param yCount 行数量* param prefab 预制体* param root 根节点* param root…

WPF 控件

<div id"content_views" class"htmledit_views"><p id"main-toc"><strong>目录</strong></p> WPF基础控件 按钮控件&#xff1a; Button:按钮 RepeatButton:长按按钮 RadioButton:单选按钮 数据显示控件 Te…

java中List集合小练习

题目&#xff1a;将1~100之间所有正整数存放在一个List集合中&#xff0c;并将集合索引位置时10的对象从集合中移除。 代码&#xff1a; import java.util.ArrayList; import java.util.List;public class ListTest {public ListTest(){List<Integer> listnew ArrayLis…

RK3566触摸驱动产品实战 配置设备树 I2C驱动框架(附源码)

引言&#xff1a;相信大家在学完相关驱动框架很少真正的运用在实际的产品案例中&#xff0c;对设备树以及驱动框架还是非常的陌生&#xff0c;其次就是在编写相关驱动还有完成项目任务时的一些思路的引导&#xff0c;这些都是需要补足的&#xff0c;接下来&#xff0c;我们将之…