现代操作系统一点点

现代操作系统

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

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

文件也是抽象出来的

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

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能够高效地响应外部事件,而不必频繁轮询设备状态。

相关推荐
wqqqianqian16 分钟前
国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
linux·word·自定义·pageoffice·数据区域
南棱笑笑生28 分钟前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统更新boot.img
linux·运维·ubuntu
XMYX-031 分钟前
Linux du 命令终极指南:从基础到精通
linux·服务器
小锋学长生活大爆炸1 小时前
【教程】Docker更换存储位置
运维·docker·容器
DourPanda1 小时前
polarctf-web-[rce1]
linux·网络协议·网络安全
愚润求学1 小时前
【Linux】动静态库链接原理
linux·运维·服务器·开发语言·笔记
云攀登者-望正茂2 小时前
无缝部署您的应用程序:将 Jenkins Pipelines 与 ArgoCD 集成
运维·jenkins·argocd
wingaso2 小时前
[经验总结]删除gitlab仓库分支报错:错误:无法推送一些引用到“http:”
linux·数据仓库·git
独行soc2 小时前
2025年渗透测试面试题总结-阿里云[实习]阿里云安全-安全工程师(题目+回答)
linux·经验分享·安全·阿里云·面试·职场和发展·云计算
勤不了一点2 小时前
小白上手RPM包制作
linux·运维·服务器·软件工程