1. 操作系统—概述

127 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

🐋1.介绍

  • 基本概述及原理
  • 操作系统介绍
  • 中断及系统调用
  • 内存管理
  • 进程及线程
  • 调度
  • 同步
  • 文件系统
  • I/O子系统

🐋2. 什么是操作系统

用户角度:操作系统是一个控制软件

  • 管理应用程序
  • 为应用程序提供服务
  • 杀死应用程序

程序角度:操作系统是资源管理器

  • 管理外设、分配资源
  • 抽象
    • 将CPU抽象成进程
    • 将磁盘抽象成文件
    • 将内存抽象成地址空间

1660982113347.png

🐻2.1 操作系统层次

  • 位于硬件之上,应用程序之下。

🐻2.2 操作系统的界面和内核

  • Linux Windows Android 的界面属于外壳(Shell) ,而不是内核(kernel)。操作系统研究的是内核,处于Shell之下。

🐻2.3 操作系统内部组件

  • CPU调度器
  • 物理内存管理
  • 虚拟内存管理
  • 文件系统管理
  • 中断处理与设备驱动

1660982139216.png

cpu: 主要是cpu的调度和进程线程的管理

内存: 物理内存和虚拟内存,物理内存就是实际的内存,虚拟内存为应用提供一个相对独立的空间(在有限的物理内存之上,虚拟出一个更大的,更安全的环境)

文件: disk是以磁盘块作为一个读写的基本单位,访问比较底层不方便,于是在上面抽象成文件。

中断处理: 它是直接与底层硬件交流

🐻2.4操作系统特征

  • 并发
    • 一段时间内运行多个进程(并行 : 一个时间点运行多个进程,一般要求有多个CPU)
    • 需要OS管理和调度
  • 共享
    • “同时”共享
    • 互斥共享
  • 虚拟
    • 利用多道程序设计技术,让每一个用户觉得的有一个计算机专门为他服务
  • 异步
    • 程序是走走停停,而不是一直运行,但是不管怎么走,只要运行环境相同,os要保证运行的结果也相同

🐋3. 操作系统历史

  1. 早起计算机使用纸带传输程序和数据,os只起到加载作用

  2. 批处理阶段(一个程序一个程序的运行,每次都需要从外面导入程序) 1660982157740.png

  3. CPU执行多个程序。此时不需要将要跑的程序,从磁盘放到内存中,大大减少IO的开销(直接全部都放到内存中) 1660982181256.png

  4. 当一个程序运行阶段,可能要进行IO操作,此时时间非常长,这时就可以运行另一个程序,当程序1完成IO操作后,就进行中断,停止程序25,继续进行程序1

1660982199773.png

  1. 提高交互性,上述的操作不需要人参与,交互性差,此时出现分时系统(通过分时使得不同的程序都有时间去执行工作。),目前计算机是1/1000秒产生一次分时。(而分时主要靠时钟定期产生中断)

1660982220909.png

  1. 多核CPU
  2. 分布式操作系统 1660982245308.png

🐋4. 操作系统结构

MS-DOS

  • 不分模块的单体内核(单体意味着通过函数调用实现(紧耦合)

微内核

  • 尽可能把内核功能移动到用户空间(在操作系统内核中放基本功能(松耦合),其他的文件系统,内存管理等都放在外面以进程形式存在,进程与进程之间通过内核消息传递进制进行通信)