操作系统概述

目标和功能

操作系统是控制应用执行的程序,是应用程序和计算机硬件间的接口

目标:方便;有效;扩展能力(evolve)

提供服务:

  • 程序开发
  • 程序运行
  • I/O设备访问
  • 文件访问控制
  • 系统访问
  • 错误检测和响应
  • 记账

典型计算机系统中的重要接口

  • ISA,Instruction set architecture指令系统体系结构
  • ABI,Application binary interface应用程序二进制接口
  • API,Application programming interface应用程序编程接口

操作系统不断发展原因:

  • 硬件升级和新型硬件的出现
  • 新的服务
  • 纠正错误

操作系统的发展史

串行处理(serial processing)

1940s后期~1950s中期,程序员需直接与计算机硬件打交道,不存在操作系统,必须顺序访问计算机

问题:调度scheduling(闲置或强制停止);准备时间set-up time(发生错误得重新开始)

简单批处理系统(simple bash system)

使用监控程序(monitor)软件,用户不再直接访问机器,而是将作业交给计算机操作员,由其将整个批作业放在输入设备,供监控程序使用。每个程序完成处理后返回到监控程序,同时监控程序自动加载下一个程序

JCL,job control language作业控制语言:一种特殊类型的程序设计语言,用于为监控程序提供指令

其他硬件:

  • 内存保护:不允许改变包含监控程序的内存区域
  • 定时器:防止一个作业独占(monopolizing)系统,定时,时间到就停止用户程序,交还控制权给监控程序
  • 特权指令:部分机器指令只能被监控程序执行(eg:I/O指令)
  • 中断:使得操作系统让用户程序放弃控制权或从用户程序获得控制权时,具有更大的灵活性

用户程序以用户模式(user mode)执行,部分内存区域被保护且不能执行特权指令

监控程序以系统态或内核模式(kernel mode)执行,不仅可以访问受保护区域,还可以执行特权指令

多道批处理系统(multi-programmed bash system)

尽管简单批处理拥有了自动作业序列,由于输入来自磁盘读取较慢,以及用户作业在I/O中断过程中,处理器仍然经常处于等待状态,为了进一步提高处于理器的利用率,人们将多道作业同时加载到内存,当有作业由于中断阻塞时,处理器读取另一个作业运行,产生了多道批处理操作系统

比单道程序设计系统复杂,待运行的多个作业必须保留在内存中,需要内存管理(memory management),并需要某种算法决定处理器运行哪个作业

分时系统(time-sharing system)

对于一些作业如事务处理,需要直接与计算机进行交互;对于多道程序设计,如果可以处理多个交互作业,多个用户分享处理器时间,该技术称为分时,主要是为了减少响应时间

第一个分时系统是MIT开发的CTSS

主要成就

操作系统开发中的4个重要理论进展

  • 进程
  • 信息保护和安全
  • 内存管理
  • 调度和资源管理

进程

1960s提出

推动进程概念发展:多道程序批处理操作,分时和实时事务系统

设计OS的困难:

  • 错误的同步,improper synchronization
  • 互斥失败,failed mutual exclusion
  • 不确定的程序操作,nondeterminate program operation
  • 死锁,deadlocks

进程的组成

  • 一段可执行的程序
  • 程序所需要的相关数据
  • 程序的执行上下文(execution context,也称进程状态process state)

image-20220311175840704.png

内存管理

OS的存储器管理职责

  • 进程隔离,process isolation
  • 自动分配和管理,automatic allocation and management
  • 模块化程序设计,support of modular programming
  • 保护和访问控制,protection and access control
  • 长期存储,long-term storage

VM,virtual memory虚拟内存

最后修改:2022 年 03 月 13 日
如果觉得我的文章对你有用,请随意赞赏