现代操作系统一点点

现代操作系统

操作系统为所有其他软件提供基础的运行环境。

操作系统包含很多用于控制输入/输出设备的驱动

文件也是抽象出来的

操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。

shell也是操作系统提供给用户的一个用户接口

作为资源管理者的操作系统

把操作系统看作向应用程序提供基本抽象的概念,是一种自顶向下的观点。按照另一种自底向上的观点,操作系统则用来管理一个复杂系统的各个部分。现代计算机包含计算存储时钟网口和其他外设。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他IO接口设备的分配。

作业job

批处理系统batch system

为什么C、JAVA、Python基本上输出语句都用print,因为在计算机发展的初期,输出主要就是用来让打印机打印的。那时候可能用纸质媒介记录信息,可能还没有显示器呢吧

控制卡片有$JOB $LOAD $RUN E N D ,还有一个 END,还有一个 END,还有一个FORTRAN卡片,这些基本的控制卡片是现代shell和命令解释器的先驱。

栈stack是一种特殊的线性表,像烤串、弹夹、碟子,物理存在为内存的一片区域,stack是一种数据结构。分配一段内存空间创建一个stack栈

为了从操作系统中获得服务,用户程序必须使用系统调用(system call)以陷入内核并调用操作系统。

Trap指令把用户态切换成内核态,并启用操作系统。当有关工作完成之后,在系统调用后面的指令把控制权返回给用户程序。

现代计算机应该是使用trap而不是一条指令来执行系统调用。

多线程允许CPU保持两个不同的线程状态,然后在纳秒级的时间尺度内来回切换。

时钟周期

多线程不提供真正的并行处理。在一个时刻只有一个进程在运行,但是线程的切换时间则减少到纳秒数量级

CPU中寄存器的存储容量都小于1KB

三级Cache一般用的是SRAM

内存条一般用的是DRAM

RAM random access memory

SRAM static random access memory

DRAM dynamic random access memory

DDR double data rate synchronous dynamic random access memory 双倍数据速率时钟动态随机记忆

用户与硬件交互的流程

user-->operation system-->设备驱动程序(device driver)-->设备控制器(是插在电路板上的一块芯片或一组芯片)-->设备本身(设备本身有个相对简单的接口,这个接口已经被标准化了,SATA就是其中一种接口)


以下内容为AI生成,

用户与硬件交互流程,为了更清晰地理解,可以将这个过程分为几个层次:

  • 用户层:用户通过应用程序或命令行工具发起操作请求。
  • 操作系统层:操作系统接收用户的请求,并通过系统调用接口(syscall)进行处理。
  • 设备驱动程序层:操作系统将请求传递给相应的设备驱动程序,设备驱动程序负责与特定硬件通信。
  • 设备控制器层:设备驱动程序与设备控制器交互,设备控制器管理硬件的具体操作。
  • 硬件设备层:设备控制器通过标准化接口(如SATA、USB等)与实际的硬件设备通信。

具体流程如下:

  1. 用户通过应用程序发起一个操作请求(例如读取文件)。
  2. 操作系统接收到请求后,将其转换为系统调用。
  3. 系统调用被传递给相应的设备驱动程序。
  4. 设备驱动程序与设备控制器通信,发送指令。
  5. 设备控制器通过标准化接口(如SATA)与硬件设备交互,执行具体操作。
  6. 操作完成后,结果逐层返回给用户。

这种分层设计使得不同层次的功能更加明确,也便于维护和扩展。


IO设备的中断(Interrupt)是计算机系统中一种重要的机制,用于通知CPU有外部事件发生,需要立即处理。当中断发生时,CPU会暂停当前正在执行的任务,转而处理中断请求,处理完毕后再返回到原来的任务。

中断的工作原理

  1. 触发中断:当IO设备完成某个操作(如数据传输完成、错误发生等),它会向CPU发送一个中断信号。
  2. 保存现场:CPU接收到中断信号后,会保存当前执行状态(如寄存器内容、程序计数器等),以便稍后能够恢复执行。
  3. 执行中断服务程序(ISR, Interrupt Service Routine):CPU跳转到预先设定的中断处理程序地址,执行相应的处理逻辑。
  4. 恢复现场:中断处理完成后,CPU恢复之前保存的状态,继续执行原来的任务。

英文翻译

"中断"对应的英文是 Interrupt 。完整的术语可以是 Interrupt Request (IRQ) 或者 Interrupt Service Routine (ISR),具体取决于上下文:

  • Interrupt:中断
  • Interrupt Request (IRQ):中断请求
  • Interrupt Service Routine (ISR):中断服务程序

在硬件和操作系统的设计中,中断机制是非常关键的部分,它使得CPU能够高效地响应外部事件,而不必频繁轮询设备状态。

相关推荐
zwhSunday3 小时前
线程概念、操作
linux·线程
_zwy4 小时前
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
linux·运维·c++·深度学习·神经网络
别致的影分身4 小时前
Linux网络 应用层协议 HTTP
运维·网络·网络协议·http
半夏云流4 小时前
CMake常用命令指南(CMakeList.txt)
linux·makefile·cmake
ccnnlxc5 小时前
日志收集Day007
运维·jenkins
鲁子狄5 小时前
[笔记] 极狐GitLab实例 : 手动备份步骤总结
linux·运维·笔记·ubuntu·centos·gitlab
Xam_d_LM5 小时前
【Linux】列出所有连接的 WiFi 网络的密码
linux·服务器·网络
机器视觉小小测试员6 小时前
工业相机常用词语解释
运维·ui·自动化·工业相机
水饺编程6 小时前
简易CPU设计入门:控制总线的剩余信号(四)
linux·嵌入式硬件·fpga开发·硬件工程