首页 > 其他分享 >01-什么是操作系统

01-什么是操作系统

时间:2023-05-18 20:13:03浏览次数:24  
标签:kernel 01 操作系统 管理 什么 程序 内存 OS

01-什么是操作系统

操作系统

什么是操作系统,没有一个明确的定义。
用户角度上,操作系统是一个控制软件
管理应用程序
为应用程序提供服务
杀死应用程序
资源管理
管理外设、分配资源

虚拟化

操作系统将cpu虚拟化为进程
磁盘虚拟化为文件
内存虚拟机化为地址空间

操作系统的层次架构

硬件之上
应用程序之下

应用程序指办公软件、视频播放软件
操作系统位于应用软件之下,为应用软件提供服务支撑

学习操作系统我们主要学习什么

Linux、Windows、Android的界面属于外壳(Shell), 而不是内核(kernel)Kernel是我们的研究重点,在Shell之下

Kernel-操作系统内部组件 包括
CPU调度器
物理内存管理
虚拟内存管理
文件系统管理
中断处理与设备驱动

OS kernel的特征

  • 并发
    在一段时间内有多个程序可以运行,与并行不同,并行是指在一个时间点上有多个程序可以执行 (有多个cpu才能实现并行)
    计算机系统中同时存在多个运行的程序,需要OS管理和调度
  • 共享
    同时访问
    互斥共享
  • 虚拟
    利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
  • 异步
    程序的执行不是一贯到底,而是走走停停,向前推荐的速度不可预知
    但只要运行环境相同,OS需要保证程序运行结果也要相同

为什么要学习操作系统?

一门综合课程

  • 程序设计语言
  • 数据结构
  • 算法
  • 计算机体系结构
  • 材料
  • 操作系统概念和原理,源代码
  • 技能
  • 操作系统的设计和实现

已经有了很多操作系统。例如windows、linux
为什么要学习操作系统?
操作系统还在不停的发展、在工控能各种领域有强烈的需求
操作系统很酷、很有用、有挑战
有趣!
操作系统是计算机科学研究的基石之一
是计算机系统的基本组成有硬件的发展和应用需求所驱动
学术和工业的持续推进

顶级会议
SOSP
USENIX

操作系统很大 windows xp 有4500万行
实际操作系统 挑核心的去了解
操作系统管理并发 并发导致有趣的编程挑战
操作系统代码管理原始硬件 时间依赖行为、非法行为、硬件故障
操作系统代码必须是高效的,低耗CPU、内存、磁盘的
操作系统出错,就意味着机器出错
操作系统是系统安全的基础

操作系统需要权衡
空间与时间
性能和可预测性
公平和性能

如何学习操作系统

动手

操作系统实例

面向桌面 面向服务 面向终端 面向工控

操作系统的历史

顺序执行->批处理
内存的容量越来越大,CPU执行多个程序 多道程序设计
为了更好的利用极大算计资源,并且更好的和用户交互,出现了分时系统 分时系统就是如果同一时刻有两个程序在运行,假如分时系统的时间是千分之一秒,那么每千分之一秒程序就进行切换一次,人的感觉就好像两个程序在同时运行
个人操作系统
多核多处理操作系统 紧耦合
分布式操作系统 松耦合

操作系统结构

简单操作系统 MS-DOS(1981-1994) 不分模块的单体内核
单体模块化的操作系统 例如:Unix操作系统 文件系统 内存管理 调度 进程线程管理 使用时钟,磁盘,中断服务等实现硬件的管理
微内核的设计,尽可能把内核功能移到用户空间 中断处理,消息传递在内核中完成 文件系统、内存管理放在外围,以程序的方式存在,相互之间通过消息传递的方式联系,实现松耦合,性能比较低 现在工业界使用比较少
外核 有一层SO kernel 外层有很多lib OS类似于应用,lib OS和SO kernel之间采用紧耦合 仅在学术界有研究
VMM 虚拟机监控器 将一台计算机虚拟成多台计算机

标签:kernel,01,操作系统,管理,什么,程序,内存,OS
From: https://www.cnblogs.com/Oh-mydream/p/17413140.html

相关文章

  • \033[0m 有什么用——python 输出颜色自定义
    "\033"是什么?\033或\33相当于python中的关键字,可以改变输出字体的属性,具体参考ECMA-48标准《ControlFunctionsforCodedCharacterSets》参数有什么?字颜色:30-----------3730:黑31:红32:绿33:黄34:蓝色35:紫色36:深绿37:白色字背景颜色范围:40----47......
  • 操作系统面试整理
    操作系统面试整理操作系统一些概念​ 操作系统是指控制和管理整个计算机的硬件与软件资源,合理地组指、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口的程序集合。操作系统的利用操作系统作为计算机资源的管理者​ 存储管理:提高利用率,方便用户使用,同时提......
  • 通俗易懂,什么是.NET Core以及.NET Core能做什么
    我们都知道.NETCore是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。与其他软件框架不同,.NETCore是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、......
  • vue中事件修饰符.prevent.self和.self.prevent有什么区别
    v-on:click.prevent.self:会阻止所有的点击,阻止了自身的默认事件和阻止了子元素事件的向上冒泡。v-on:click.self.prevent:只会阻止对元素自身的点击,阻止了子元素事件的向上冒泡,阻止了子组件冒泡事件的默认事件。在Vue.js中,事件修饰符.prevent用于阻止事件的默认行为,.self用于阻......
  • 《花雕学AI》人类推理能力对AI来说是什么?用ChatGPT来检验一下
    ”这里有一本书、九个鸡蛋、一台笔记本电脑、一个瓶子和一个钉子,请告诉我如何把它们稳定地堆叠在一起?“这是去年提出的一道测试推理能力的题目,当微软的计算机科学家开始试验一种新的AI系统时,他们要求AI解决这个难题,这个难题本应该需要对现实的物理世界有直觉性地理解。凤凰网科......
  • Machine Learning:什么是谷歌云功能
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生行动和反应。 简而言之,这就是GoogleCloudFunctions。但是,当然,由于这并不能涵盖此服务很酷的所有方式,因此让我们更详细地介绍一下。在本文中,我将更详细地概述GoogleCloudFunctions,比较第一代和第二代环境,并讨......
  • 什么是 Angular 的 API Extractor?
    Angular的APIExtractor是一个用于生成和管理TypeScript库的API文档的工具。它的工作原理是通过分析TypeScript代码,并提取其中的公共API,生成清晰的文档以便开发者了解库的使用方式、函数、类、接口等。APIExtractor的工作流程如下:配置:首先,需要创建一个名为"api-e......
  • JavaScript全解析——Ajax是什么(上)
    AJAX是AsynchronousJavaScriptAndXML的缩写。它不是一种编程语言。它是一种基于HTML、CSS、JavaScript和XML,让开发更好、更快和更有互动的Web应用的技术。什么是ajax认识前后端交互前后端交互就是前端与后端的一种通讯方式,主要使用的技术栈就是ajax(asyncjavascript......
  • “流量与关键词”工具中的关键词排名为什么会出现小数点?
    本文转载自:“流量与关键词”工具中的关键词排名为什么会出现小数点?更多内容请访问钻芒博客:https://www.zuanmang.net“热门关键词”和“热门页面”列表中给出的排名是平均排名,表示在相应的时间段内,用户在搜索某一个关键词时,该页面在百度搜索结果中的平均排名,所以“流量与关键词......
  • 什么是软件测试领域的 false-positive test?
    在软件测试领域,"false-positivetest"是指在测试过程中产生了误报的测试结果。这意味着测试工具或测试流程错误地将一个实际上是正确的功能或行为标记为错误或异常。False-positivetest在软件测试中是一个常见的现象,尤其是在自动化测试中。这种情况可能由多种因素引起,下面我将......