操作系统浓缩笔记(2)-操作系统结构

 文章笔记主要引用:

阿秀的学习笔记 (interviewguide.cn)

小林coding (xiaolincoding.com)

说一下你理解中的内存?他有什么作用呢?

在多道程序环境下,为了区分各个程序的数据存放位置,操作系统采用了以下主要的技术和策略:

  1. 进程和地址空间:操作系统为每个进程分配一个独立的地址空间,即虚拟地址空间。虚拟地址空间是每个进程所独立拥有的地址范围,用于存放进程的代码、数据和堆栈等信息。每个进程的虚拟地址空间都从0开始,因此各个程序的数据存放在各自的虚拟地址空间中,彼此相互隔离。

  2. 内存分页:为了更高效地管理内存和实现进程间的内存隔离,操作系统使用内存分页技术。内存被分割成大小相等的块,称为页。每个进程的虚拟地址空间也被分成大小相等的块,称为虚拟页。操作系统使用页表来映射虚拟页到物理页(实际内存中的页)的对应关系。每个进程的页表都是独立的,使得不同进程的虚拟页可以映射到不同的物理页,实现了内存隔离。

  3. 内存保护:为了防止进程之间相互干扰和访问彼此的数据,操作系统通过内存保护机制来限制每个进程对内存的访问。在页表中,可以设置页的访问权限,比如只读、可写、可执行等。操作系统会根据进程的访问权限来设置页表项,确保进程只能访问自己所拥有的内存区域,而不能访问其他进程的内存。

  4. 进程切换:在多道程序环境下,CPU会在不同的进程之间进行切换,以实现并发执行。当一个进程被调度执行时,操作系统会将该进程的页表装载到内存管理单元(MMU)中,从而使得进程的虚拟地址能正确映射到物理地址。当进程切换时,MMU会切换到下一个进程的页表,从而实现进程间内存隔离。

通过以上技术和策略,操作系统能够区分各个程序的数据存放位置,并保证各个进程之间的数据和内存隔离,从而实现多道程序的并发执行。这样每个程序都能在独立的地址空间中运行,相互之间不会干扰,保障了系统的稳定性和安全性。

冯诺依曼结构有哪几个模块?分别对应现代计算机的哪几个部分?(百度安全一面)

  • 存储器:内存
  • 控制器:CPU中控制单元,南桥北桥
  • 运算器:CPU中逻辑运算单元
  • 输入设备:键盘
  • 输出设备:显示器、网卡

CPU

寄存器、控制单元和逻辑运算单元

常见的寄存器种类:

  • 通用寄存器,用来存放需要进行运算的数据,比如需要进行加和运算的两个数据。
  • 程序计数器,用来存储 CPU 要执行下一条指令「所在的内存地址」,注意不是存储了下一条要执行的指令,此时指令还在内存中,程序计数器只是存储了下一条指令「的地址」。
  • 指令寄存器,用来存放当前正在执行的指令,也就是指令本身,指令被执行完成之前,指令都存储在这里。

总线

总线是用于 CPU 和内存以及其他设备之间的通信,总线可分为 3 种:

  • 地址总线,用于指定 CPU 将要操作的内存地址;
  • 数据总线,用于读写内存的数据;
  • 控制总线,用于发送和接收信号,比如中断、设备复位等信号,CPU 收到信号后自然进行响应,这时也需要控制总线;

当 CPU 要读写内存数据的时候,一般需要通过下面这三个总线:

  • 首先要通过「地址总线」来指定内存的地址;
  • 然后通过「控制总线」控制是读或写命令;
  • 最后通过「数据总线」来传输数据;

32 位和 64 位 CPU 最主要区别在于一次能计算多少字节数据:

  • 32 位 CPU 一次可以计算 4 个字节;
  • 64 位 CPU 一次可以计算 8 个字节;

猜你喜欢

转载自blog.csdn.net/shisniend/article/details/131863923