2026/2/14 8:28:09
网站建设
项目流程
有哪些有趣的网站,青岛建设公司网站建设,可以发广告的网站,梅河口信息网操作系统概述和硬件视角 文章目录操作系统概述和硬件视角一、前言二、操作系统的概述2.1 定义2.2 目的2.3 关注点2.4 程序来看OS2.4.1 提出问题2.4.2 解决编译器的很多问题三、硬件视角3.1 组成3.2 核心概念3.2.1 CPU3.2.2 存储器3.2.3 I/O设备3.2.4 总线四、小结一、前言 今天…操作系统概述和硬件视角文章目录操作系统概述和硬件视角一、前言二、操作系统的概述2.1 定义2.2 目的2.3 关注点2.4 程序来看OS2.4.1 提出问题2.4.2 解决编译器的很多问题三、硬件视角3.1 组成3.2 核心概念3.2.1 CPU3.2.2 存储器3.2.3 I/O设备3.2.4 总线四、小结一、前言今天我们开始步入操作系统的学习啦~二、操作系统的概述2.1 定义Operating System简称OS是一组控制和管理计算机硬件和软件资源的程序集合本质OS是一个软件需要在硬件上运行为软件系统提供访问接口ssoftware上管软件下管硬件就是操作系统程序集合操作系统需要编码2.2 目的合理地对各类作业进行调度方便用户使用计算机使系统资源的利用率高系统的吞吐量大利用率高使一个事物可以尽可能的做更多事吞吐量大一次性干好多事2.3 关注点如何设计操作系统以及设计操作系统需要解决的问题和方案2.4 程序来看OS2.4.1 提出问题hello.c文件在磁盘怎么存怎么读可以我们在磁盘那么大的空间可以找到hello.c文件系统hello.c怎么变成CPU能认识的指令识别指令操作系统能做的活都限制在指令集中我们现在写的程序都是基于OS的程序设计裸机程序软件可以运行多次甚至同时运行很多软件CPU如何管理多个任务程序存放内存之中内存如何进行管理核心操作系统如何管理CPU如何管理内存如何管理磁盘如何管理设备IO涉及进程和线程调度和同步机制、内存管理、文件系统、IO设备2.4.2 解决编译器的很多问题编译器和操作系统的关系操作系统和编译器是彼此辅助的关系编译器是基于操作系统的帮助操作系统管理资源的以及支持编译行为一款编译器要解决的问题解决CPU指令集问题不同操作系统的问题如果操作系统是none——说明它是直接面向CPU编程不是为系统服务gcc不像javacjava的编译器是javacgcc在windows上写的程序在Linux上就是运行不了。而java语言可以跨平台运行。gcc编译过程gcc是一个总的调度器后面跟着一个选项决定了干活干到什么程度语法预处理和汇编一定程度上人类还是看得懂的后面不行运行出错一般是链接出错编译器和汇编器都是来解决CPU的链接器是解决内存管理的gcc -E -o hello.i hello.c预处理gcc -S -o hello.s hello.i生成汇编文件人们能看懂的助记符 编译cc1 hello.c -o /tmp/cceVNE1I.s编译器 gcc -S里面含有很多编译所产生文件的目录在编写程序时所谓的include就是把文件打开了最终编译的是.c文件只是将会重复编译的文件整成头文件包含在.c文件中了最终是一起编译的gcc -c -o hello.o hello.s将助记符一一映射变成了非ASCII码的文件 汇编as -o /tmp/cc8ATX9H.o /tmp/cceVNE1I.sas-assembler 汇编器 gcc -c借助nm、objdump来看懂.o是gcc二进制指令流里面有很多-c-lc-lgcc等都是第三方库——链接组装车间gcc -o build hello.o链接ld -o build /tmp/cc8ATX9H.o .../*.o -lc链接器 gcc不仅需要自己的.o还需要很多操作系统的依赖.o还有很多第三方库的.o-lc为什么说编译是在操作系统下运行的呢因为编译器也把操作系统对应的依赖文件装进去了并且第三方库我们写程序也需要很多别人写好的函数如标准C库在操作系统中有asldcc1这些东西比较底层做了解三、硬件视角3.1 组成一个或多个处理器CPU、主存、键盘 鼠标、显示器、网络接口、打印机CPU不存指令CPU如果存指令消耗会很大于是有了主存主存相当于CPU外面的一个仓库。主存包括内存 磁盘键盘 鼠标、显示器、网络接口、打印机都属于IO磁盘是由磁盘控制器管理的磁盘控制器是由驱动控制来工作的CPU - Cache - 内存、数据内存、控制器控制器控制硬件产生高低电压和频率和另外一个芯片达成通信过程相当于一个小芯片CPU不能做这个事情因为它不能停是一直高速转动的CPU负责控制控制器CPU里面有寄存器不同CPU的寄存器不一样[厂家决定]数量少数据是通过寄存器写到内存里面的CPU就是依靠寄存器实现和内存的交互有专门的指令集指令集PCProgram Counter程序计数器PC指哪CPU就在哪运行SPStack Pointer栈指针控制在内存存放东西注意每个厂家实现的行为不一样~3.2 核心概念3.2.1 CPU指令集和结构特点寄存器和内存的加载、存储指令把内存的东西取到寄存器里面在寄存器里操作完之后再放回内存寄存器不能通过地址来访问只能通过写汇编访问基本运算指令特殊功能指令资源寄存器通用寄存器R0-R12ARM体系特殊寄存器PC寄存器SP寄存器保护和恢复信息PSW寄存器状态寄存器还在运行时需要保存比如中断工作模式工作模式有独立的空间独立的任务特权 非特权中断模式 系统调用★3.2.2 存储器存储器的访问时间和容量关系寄存器、缓存缓存是一行一行存局部性原理cache比内存快常见主存Main Memory意识性存储器掉电易失RAMRandom Access Memory掉电易失ROMRead Only Memory存了不丢磁盘非意识性存储器磁盘结构磁道、柱面、扇区3.2.3 I/O设备I/O设备工作模型实现输入输出的3种方式忙等busy waiting/轮询中断中断处理流程中断发生就要保护现场和恢复现场硬件/软件来保护异常和中断3.2.4 总线衔接不同的设备分高速总线和低速总线四、小结本篇仅对操作系统进行一个总览有一个感性的理解之后会分主题深入探索。