操作系统究竟是什么?在计算机体系中扮演什么角色?

2024-03-25 07:52

本文主要是介绍操作系统究竟是什么?在计算机体系中扮演什么角色?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

操作系统究竟是什么?在计算机体系中扮演什么角色?

  • 一、操作系统概念
  • 二、操作系统如何管理软硬件资源
    • 2.1 何为管理者
    • 2.2 操作系统如何管理硬件
  • 三、系统调用接口作用
  • 四、用户操作接口
  • 五·、广义操作系统和狭义操作系统

一、操作系统概念

下面是来自百度百科对操作系统的概念:

 操作系统(英语:Operating System,缩写:OS)是一种内置的程序,用来协作计算机的各种硬件,以与用户进行交互。常见有Windows,macOS 和开源的 Linux。
 根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。
 操作系统是人与计算机之间的接口,也是计算机的灵魂。

 emmm… 非常抽象
 通俗来讲,操作系统是一款进行软硬件资源管理的软件。操作系统通过将软硬件资源管理好(手段),从而给用户提供一个良好(稳定、高效、安全)易用的使用环境(目的)
 emmm…那操作系统是如何管理软硬件资源?如何给操作用户提供一个良好易用的使 用环境?

 下面是计算机软硬件架构图,下面博主基于此图分析上述两个问题,以及图中每个部分的意义!
在这里插入图片描述

二、操作系统如何管理软硬件资源

在整个计算机软硬件架构中,操作系统被定义为一款纯正的搞“管理”的软件!

2.1 何为管理者

 生活中,所有的事情宏观上大致可分为两大类:做决策、做执行。而对于管理者来说,基本以做决策为主。但管理者如何做决策,作出正确决策?
 现在假设校长要管理学生,比如让张三退学。但校长没有和张三见过面,凭什么让张三退学?原来校长通过辅导员拿到了全校所有学生的各科成绩信息。校长拿到了完善的数据,发现张三挂科严重,才作出让张三退学的决定。所以管理的本质不是管人,而是管理数据!
 但现在学生人数过多,校长管理学生需要得到更多相关信息(诸如:姓名、入学年份、紧急联系人等等)。其中一种解决办法就是将所有学生的相关信息写入一张excel表格中,从而实现结构化管理。但如果人数过多,这样管理起来还是很麻烦,那怎么办?

 我们可以通过编程中面向对象的知识,通过一个结构体将所有的信息封装起来,比如:

struct Student
{char name[4];//学生名字int age;string numbers;//电话号码// .....
}

我们可以将所有学生的信息都转化为一个结构体对象,然后通过链表的形式链接起来。
这就是对学生管理的一个建模过程,最终将管理学生转化成对链表的增删查改!!

 管理可总结为“先描述,在组织”。即被管理的对象以什么样的结构体形式来描述,然后将结构体设定具体对象,通过特定的数据结构组织起来。

2.2 操作系统如何管理硬件

 我们已经知道管理的本质是管理数据,所以操作系统要管理底层硬件,首先得到相应硬件的数据信息(比如磁盘已使用空间、数据存放区域、是否正常等的)。但操作系统和硬件没有直接接触,所以中间存在驱动程序。驱动程序将硬件的相关信息传递给操作系统。同时由于各种信息庞杂,为例更好管理,操作系统需要将相关信息通过结构体方式(操作系统主要是C写的)进行描述,在通过特定的数据结构组织起来。从而将对硬件的管理转化成这些数据结构的管理
 当操作系统作出某种决策时,操作系统将信息传递给驱动程序,通过驱动程序来完成操作系统对硬件的控制。
在这里插入图片描述

三、系统调用接口作用

在所有的计算机体系中,都不允许用户直接对操作系统进行操作。原因在于操作系统不相信用户。就像银行系统一样,银行为什么要柜台和玻璃,为什么不让用户自己取钱后自己修改以下数据。原因在于银行不相信我们,但又必须要为我们提供相关服务,所以安装了玻璃,并在玻璃上开了一个洞。同样用户中存在坏人,所以操作系统不允许用户直接操作控制它。但操作系统要为我们提供相应的服务(比如向磁盘中写数据),所以提供了system call(系统调用接口)。所以的用户请求只能通过系统调用借口传给操作系统!!
在这里插入图片描述

四、用户操作接口

 系统调用使用起来比较麻烦,所以对于站在系统上的人提供了一些外壳程序(Linux中为shell外壳,windows为图形化界面),而这写外壳程序大多是由C/C++写的,其中必然存在系统调用借口。
 系统调用在使用上,功能比较基础,对用户的要求相对也比较高。所以,大佬们对部分系统调用进行适度封装,从而形成库。有了库,就很有利于更上层用户或者开发者进行二次开发。
在这里插入图片描述

五·、广义操作系统和狭义操作系统

在这里插入图片描述

这篇关于操作系统究竟是什么?在计算机体系中扮演什么角色?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/844323

相关文章

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

简单的角色响应鼠标而移动

actor类 //处理移动距离,核心是找到角色坐标在世界坐标的向量的投影(x,y,z),然后在世界坐标中合成,此CC是在地面行走,所以Y轴投影始终置为0; using UnityEngine; using System.Collections; public class actor : MonoBehaviour { public float speed=0.1f; CharacterCo

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正

Python计算机视觉编程 第十章

目录 一、OpenCv基础知识 1.读取和写入图像 2.颜色空间 3.显示图像和结果 二、处理视频 1.输入视频 2.将视频读取到NumPy数组中 三、跟踪 1.光流 2.Lucas-Kanade算法 一、OpenCv基础知识 OpenCV 自带读取、写入图像函数以及矩阵操作和数学库。 1.读取和写入图像 import cv2# 读取图像im = c

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启