IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 计算机操作系统的基本概念 -> 正文阅读

[嵌入式]计算机操作系统的基本概念

计算机操作系统的基本概念

一、 什么是计算机操作系统

  1. 系统软件(不以某种特定应用为目标的软件)——在计算机硬件基础上为应用软件提供通用服务的软件,它们作为一个必需的组成部分 ,与硬件一起构成了完整的计算机系统 。
  2. 操作系统(是最重要的一种系统软件)——处在计算机硬件与计算机应用程序之间 ,除了起着应用程序与计算机硬件联系的接口作用之外 ,还要负责对计算机的资源在应用程序之间进行管理和分配 。
  3. 应用软件和操作系统构成了计算机软件,而操作系统和计算机硬件系统构成了计算机系统。

二、 操作系统的功能

  1. 操作系统是计算机硬件的封装和功能的扩充。
    将具体的硬件执行细节抽象为程序功能模块,并提供高级语言接口,这种提供了一些例程接口 ,从而使应用程序可通过这些接口对计算机硬件进行操作,就叫做计算机硬件的抽象层 HAL(Hardware Abstraction Layer ),作为操作系统的最底层 ,是对计算机硬件的第一次软件封装 。在硬件抽象层与应用程序之间再添一层 :用高级语言再编写一些程序模块(例如C函数),并在这些模块中 ,通过调用HAL层程序模块,把硬件操作根据需要适当地组合封装起来,形成一些具有通常意义的模块。为了方便用户 ,操作系统还提供了一些与硬件操作无关的通用程序模块(例如 :开方 、取整等一些数学运算函数) ,并把它们与上述的read()、write()等模块组织成函数库 ,以供应用程序来调用 。 这些函数(模块)被叫做应用程序接口API(Application Programming Interface)。从计算机应用程序的角度来看 ,API中与硬件相关的那些函数就是对计算机硬件的第二次抽象和封装 。(即计算机硬件的抽象层HAL是对计算机硬件的第一次软件封装,而应用程序接口API是对计算机硬件的第二次软件封装。)在这里插入图片描述

  2. 操作系统是计算机资源的管理者
    计算机资源:由计算机提供的,因应用程序的存在和运行所消耗或占用的物质条件,包括处理器的时间、内存空间、外部设备等。如何使计算机所提供的公用资源被应用程序合理地使用 ,是操作系统必须承担的一项重要管理任务!
    操作系统的管理功能主要有如下几个方面:
    1. 处理器的管理 :操作系统对处理器的管理工作主要有两项 :一是对中断的管理 ;二是对处理器在各并发应用程序之间进行调度 。
    2. 存储器存储空间的管理:合理地为并发程序分配和使用该资源。
    3. I/O设备的管理 完成用户提出的I/O请求 ,加快输入 、输出的速度 ,提高I/O设备的利用率 。
    4. 文件的管理 在计算机中 ,程序和数据通常都是以文件的形式存储于硬盘 、光盘等外存储器的 ,文件量巨大!
    5. 网络和通信的管理。
    6. 提供良好的用户接口 API。

三、进程和线程的基本概念

  1. 在计算机中程序的一次运行过程是处理器资源分配的基本单位。 为了方便 ,把程序的一次运行过程就叫做进程。进程的定义:可并发执行且具有独立功能的程序在一个数据集合上的运行过程 ,它是操作系统进行资源分配和保护的基本单位。

  2. 进程具有的特性:
    1. 动态性——指进程是程序的一次活动,程序是进程活动的蓝本,而进程活动是程序的一次运行过程。
    2. 并发性——指在一个系统内可以同时存在多个进程,它们交替使用处理器资源,并各自按照自己独立的进度推进。
    3. 异步性——指进程之间在交替使用计算机资源时没有强制的顺序。
    4. 独立性——指进程在系统中是一个可独立运行的并具有独立功能的基本单位,是系统分配资源和进行调度的独立单位。
    5. 结构性——指为了记录、描述、跟踪进程运行时的状态变化以便对进程进行控制,系统对每个进程都建有对应的数据结构及数据表项 。

  3. 在存储器中进程由程序代码、数据集合、进程控制块三部分组成:
    ① 进程通过执行程序代码来完成用户的任务
    ② 数据集合是进程在运行时所需要的数据全体
    ③ 进程控制块是操作系统为记录和描述进程基本信息及状态由操作系统创建并分配给进程的一个数据结构

  4. 作为一个执行过程进程具有至少三种状态:就绪状态、运行状态和阻塞状态。
    1. 就绪状态表明已获得除处理器外的所有必需的资源
    2. 进程一旦获得处理器的使用权 ,进程对应的程序代码就会被执行而使进程处于运行状态 。
    3. 阻塞状态需要等待一个事件而暂停运行。
    4. 就绪状态到运行状态的转化叫做进程的调度,进程调度——系统总是从处于就绪状态的进程里选择一个就绪进程转换为运行状态,这是操作系统的一项重要任务。
    5. 运行状态到阻塞状态的转化叫做挂起。

  5. 进程控制块PCB:是操作系统来感知和控制一个进程的依据;进程控制块相当于进程在操作系统中的身份证或档案 。为了指明进程的私有堆栈和存储数据用的数据块,在进程控制块中应有指向这两部分的指针。同时为了指明该进程的程序代码,在进程控制块中还应有指向代码的指针。

  6. 随着软件设计技术的发展,以进程作为分配处理器资源的基本单位显得过于庞大和笨重,使得系统在进行进程切换时的时间和空间开销过大。把程序的运行过程再分割为更小的单位—线程,即把一个进程再分割为多个线程 。每个线程均有自己的线程控制块,这些线程控制块归属于进程控制块。线程控制块中也要包含模块代码指针和私有堆栈指针。在这里插入图片描述

  7. 操作系统在进行资源的分配时,对于存储空间资源,以进程为单位来进行分配;对于处理器资源以线程为单位来进行分配。同一个进程中的所有线程共享进程的资源;线程是基本运行单位,是系统调度的基本单位。

四、操作系统的内核

  1. 操作系统的内核——由HAL层中的程序模块及进程管理 、内存管理等基本服务程序模块组成的系统的核心部分。为防止因用户程序错误调用内核模块而使系统崩溃,把内核模块的调用与应用程序的一般进程调用区别开来,并对一般用户不公开内核模块的调用方法,使应用程序不能直接调用内核模块。 因为高级语言不支持中断,所以达到上述目的一个办法就是用中断的方法来实现内核模块的调用,从而使高级语言应用程序不可能直接接触到内核模块。
  2. 操作系统内核的三个基本功能:中断处理 、进程的调度管理和系统的基本操作。
  3. 操作系统的内核分为微内核和宏内核。微内核——把内核各个服务程序模块中的部分内容移到内核的外面作为一个进程来看待,在内核中只保留内核服务与用户进程的接口,或者说只保留一个“壳”(或者说是消息的转送站),使内核大大变小。
    优点——能有效地利用内存、便于在不同的硬件系统间进行移植、适用于处理速度要求高的场合。

五、操作系统的中断

  1. 只有中断才能“触摸”到操作系统的内核,因此操作系统内核的运转是由中断来驱动的,中断是内核的生命之源。
  2. 由于某种异步事件的发生而迫使程序执行流程发生转移的现象叫做中断。异步事件是指与当前正在做的事情在逻辑上无关的事件。
  3. 在计算机中,中断事件的优先级是根据事件的实时性、重要性和软件处理的方便性来安排的。
  4. 中断屏蔽是指通过设置相应的中断屏蔽位,禁止响应某个中断。这样作的目的,是保证在执行一些重要的程序中不响应中断,以免造成迟缓而引起错误。从中断是否可以被屏蔽来看,可分为可屏蔽中断和不可屏蔽中断两类。

六、系统时钟

  1. 所有的操作系统都要按照一个固定的时间间隔周期性地对系统中有关时间的一些事件进行处理,所以在操作系统中,要设置一个定时器(硬件的或者软件的) ,使并使它定时向处理器发出“定时时间到”的中断申请,并在中断服务程序中对系统中的时间事件进行处理。定时器发生的中断请求就叫做操作系统的系统时钟,也叫做时钟节拍;对应的中断服务程序叫做时钟节拍服务。
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:15:52  更:2022-04-01 00:17:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:51:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码