计算机基础知识——操作系统

1. 操作系统出现前

  • 人们使用针孔打卡编程,当计算机运行速度呈指数级速度增长,整理程序(纸卡)的时间远大于运行程序(读卡)的时间,耗时耗力,因此人们需要一个程序让计算机自动运行程序。
  • 早期计算机的外接设备的配置不同,导致程序员运行程序时还需要了解外接硬件的底层,造成不必要的精力损耗。

2. 操作系统出现(简称OS,operation system)

  • 计算机启动后运行的第一个程序
  • 可以运行、管理、存储其他程序
  • 有操作硬件的特殊权限,并提供API来抽象硬件(即设备驱动程序)

2.1 操作系统的优点

  • 批量处理程序的能力
  • 多任务处理能力(多个程序共享CPU)
  • 动态内存分配
  • 内存保护

2.2 多任务处理带来的问题

  • 多个程序之间的内存分配问题
  • 解决方案:给每个程序分配专属内存块
  • 带来的新问题:内存地址不连续,导致程序员难以追踪,如下图所示:
计算机基础知识——操作系统_第1张图片
内存地址不连续

2.3 内存地址虚拟化(解决内存地址不连续问题)

虚拟内存地址 → 物理内存地址

在虚拟内存地址和物理内存地址之间建立映射关系,也称动态内存分配。动态内存分配的好处:提供内存保护(程序之间的内存互相独立,互不影响)。

  • 操作系统隐藏硬件上不连续的内存地址
  • 所有程序使用操作系统提供的虚拟内存(从0开始)
计算机基础知识——操作系统_第2张图片
动态内存分配

3.0 Unix操作系统

3.1 Unix的组成:

  • 内核,处理核心功能,如多任务、输入输出处理等
  • 工具(如程序和运行库)

3.2 特点

  • 不做错误恢复处理,直接调用一个panic函数,让内核崩溃。用户只能通过重启来恢复。
  • 与其他做错误恢复处理的操作系统所需占用内存相比(1M),Unix只暂用极小内存,适合商业化。

你可能感兴趣的:(计算机基础知识——操作系统)