0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算机系统讲解(下)

CHANBAEK 来源:CurryCoder的程序人生 作者:CurryCoder 2023-09-27 15:10 次阅读

1.操作系统管理硬件

真正操纵硬件的是操作系统,操作系统可以看成是应用程序和硬件之间的中间层。所有的应用程序对硬件的操作必须通过操作系统来完成,这样做的目的是:首先,防止硬件被失控的应用程序所滥用;其次,操作系统提供统一的机制来控制这些复杂的底层硬件。

图片

操作系统管理硬件

为了实现操作系统对硬件的操纵,操作系统引入了几个抽象的概念。 文件是对IO设备的抽象、虚拟内存是对内存和磁盘IO的抽象、进程是对处理器、内存及IO设备的抽象 。

图片

操作系统的抽象机制

2.进程的解释

(1).以shell命令行中执行./hello命令为例进行说明,最开始的时候只有shell进程在运行,即shell在等待命令行的输入。

图片

命令输入

(2).当通过shell进程加载hello进程时,shell进程通过系统调用来执行我们的请求。系统调用会将控制权从shell进程传递给操作系统,操作系统保存shell进程的 上下文 。然后,创建一个新的hello进程及其上下文。接着,将控制权转交给新的hello进程。hello进程执行完成后,操作系统会恢复shell进程的上下文,并且将控制权交给shell进程,之后shell进程继续等待下一个命令的输入。

图片

进程上下文切换

上下文:操作系统会跟踪进程运行中所需要的所有状态信息,这种状态(例如:当前PC和寄存器的值、内存中的内容等)称为上下文。

3.线程的解释

现代操作系统中一个进程由多个线程组成,每个线程都运行在进程的上下文中,共享代码和数据。

图片

线程

4.虚拟内存

操作系统为每个进程提供了一个假象,即每个进程都在独自占用整个内存空间。每个进程看到的内存都是一样的,称之为虚拟地址空间。

图片

进程的虚拟地址空间

进程的虚拟地址空间:从下往上,地址是增大的。

第一个区域:用来存放程序的代码和数据的,这个区域的内容是从可执行目标文件中加载而来的。对所有进程来说,代码都是从固定的地址开始的;

第二个区域:堆heap,函数malloc所申请的地址空间就在这个堆中的,堆可以在运行时动态的扩展和收缩;

第三个区域:共享库的存放区域,这个区域存放C语言的标准库和数学库这类共享库的代码和数据;

第四个区域:用户栈,函数调用的本质就是压栈;

第五个区域:为内核保留的区域,应用程序的代码不能读写这个区域的数据,也不能直接调用内核中定义的函数,这个区域对应用程序不可见;

5.文件

Linux中一切皆文件,键盘、鼠标、磁盘、显示器,甚至网络这些都可以看成是文件,系统中所有的输入和输出都可以通过读写文件来完成。

图片

"一切皆文件"

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18512

    浏览量

    223357
  • 计算机
    +关注

    关注

    19

    文章

    6709

    浏览量

    85188
  • 操作系统
    +关注

    关注

    37

    文章

    6351

    浏览量

    122065
  • 计算机系统
    +关注

    关注

    0

    文章

    214

    浏览量

    23918
  • 线程
    +关注

    关注

    0

    文章

    494

    浏览量

    19525
收藏 人收藏

    评论

    相关推荐

    求助如何用ARM设计计算机系统呀?

    `在上微机原理的时候,老师让设计一个计算机系统。求大神指点怎样设计微机系统呢?感激不尽哦,`
    发表于 11-08 21:43

    计算机系统结构

    计算机系统结构
    发表于 05-09 19:03

    嵌入式计算机系统怎么降低功耗?

    要求的不断提升,小体积、高性能与有限的电池能量之间的矛盾曰益突出,系统低功耗设计是解决这一矛盾的有效手段。基于ARM的嵌入式计算机系统在保证系统性能的情况通过硬件和软件两方面低功耗的
    发表于 03-31 07:39

    什么是计算机系统计算机硬件和计算机软件?

    第一章 计算机系统概论1. 什么是计算机系统计算机硬件和计算机软件?硬件和软件哪个更重要?解:P3计算机系统:由
    发表于 07-22 09:06

    什么是计算机系统?硬件和软件哪个更重要?

    第一章计算机系统概论1 .什么是计算机系统计算机硬件和计算机软件?硬件和软件哪个更重要?解: P3计算机系统:由
    发表于 07-26 07:18

    计算机系统中的软件系统

    专用计算机现代计算机运算速度最高可达每秒几万亿次几十亿次几亿次几万次计算机辅助制造是计算机应用领域之一其英文缩写是所谓的信息是指基本素材非数值数据数值数据处理后的数据
    发表于 09-13 07:22

    计算机由哪几部分组成?计算机系统的层次结构是怎样的?

    计算机由哪几部分组成?计算机系统的层次结构是怎样的?计算机的性能指标有哪些?
    发表于 09-18 07:09

    嵌入式系统计算机系统的区别是什么?

    原标题:嵌入式系统计算机系统有什么不同近段时间很多学习单片机或者传统计算机的人员参加嵌入式培训的比例在不断增大,这部分同学可能以前对于计算机系统
    发表于 10-28 08:54

    嵌入式计算机系统概述

    嵌入式计算机系统概述:定义:以应用为中心、以计算机威廉希尔官方网站 为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统嵌入式
    发表于 12-22 06:08

    详解单芯片微型计算机系统

    什么是单芯片微型计算机系统呢?单芯片微型计算机系统是由哪些部分组成的?
    发表于 01-19 07:05

    计算机系统概论

    1.1 计算机系统简介1.2 计算机的基本组成1.3 计算机硬件的主要威廉希尔官方网站 指标1.4 本书结构
    发表于 04-11 09:31 0次下载

    微型计算机系统

             微型计算机系统与传统的计算机系统一样,也是由硬件系统和软件系统两大部分组成的。2.1
    发表于 03-03 08:31 0次下载

    什么是计算机系统的容错性

    什么是计算机系统的容错性             所谓容错是指在故障存在的情况下计算机系统不失效,仍然能够正常工作的特性
    发表于 01-08 13:49 1553次阅读

    计算机系统小结

    计算机系统小结   习惯上所称的“电子计算机”是指现在广泛应用的电子数字计算机,它分为专用计算机和通用计算机两大类。专
    发表于 04-13 14:14 661次阅读

    计算机系统讲解(上)

    Stage1(预处理) :预处理器会根据以#开头的代码来修改原始程序,预处理器会读取头文件中的内容,将头文件中的内容直接插入到源程序中,结果就得到了另一个C程序。经预处理器处理后得到的文件通常以.i为后缀结尾,它仍然是一个文本文件。
    的头像 发表于 09-27 15:09 331次阅读
    <b class='flag-5'>计算机系统</b><b class='flag-5'>讲解</b>(上)