计算机操作系统

为什么要有操作系统
  1. 计算机系统是一个复杂的系统,如果每位程序员在编程时都必须掌握计算机系统的所有细节,就会严重影响程序员的开发效率
  2. 操作系统可以对计算机硬件加以管理和优化使用,为用户程序提供更好的运行环境。
操作系统以及其位置
  • 本质上也是一个软件,位于计算机硬件和应用软件之间
  • 操作系统就是一个协调、管理、控制计算机硬件资源和软件资源的控制程序
  • 应用软件直接使用操作系统提供的功能来简介使用硬件
操作系统组成
  • 内核(运行于内核态,管理硬件资源)
  • 系统调用(运行于用户态,为应用程序提供可以进行系统调用的接口)
操作系统功能
  • 隐藏了复杂的底层硬件调用接口,为应用程序提供了简单的系统调用接口
    • 磁盘资源的抽象是文件系统
      • 有了文件的概念,我们直接打开文件进行IO操作就可以,不需要关心记录是否应该使用修正的调频方式和当前点击的状态等细节
    • 应用程序直接与操作系统及其抽象打交道
    • 用户通过命令行/图形界面与应用程序打交道,他们都是运行于操作系统之上的应用软件,并不属于操作系统。
  • 将应用程序对硬件资源的竞态请求变得有序化
    • 多个软件共享一套计算机硬件或硬盘中的文件,如果没有操作系统,程序运行会变得杂乱无章。
发展历史
  •  一代:真空管、穿孔卡片
    • 所有程序设计使用纯粹的机器语言编写(没有程序设计语言)
    • 没有操作系统的概念
    • 所有程序设计都是直接操控硬件(电缆、电路板)
    • 浪费计算机资源,同一时间只能一个人使用
  • 二代:晶体管、批处理系统   
    • 把一堆人的输入编程一批程序输入
    • 整个仍然有人的参与
    • 开发效率变低,无法及时调试
    • 仍然是顺序计算(串行)
  • 三代:集成电路芯片和多道程序设计   
    • 多道技术:指的就是多个程序同时运行的技术
      • 1.内存中同时进入多个程序(空间上的复用)
        • 内存必须实现多个程序在物理级别上的隔离(安全)
      • 2.CPU在多个程序之间来回切换(时间上的复用)
        • CPU切换的两种情况    :
          •  一个程序占用CPU时间过长
          •  一个程序遇到I/O阻塞也要切换

操作系统两大作用:
  1. 为应用程序提供如何使用硬件资源的抽象
    • 比如操作系统提供了文件这个抽象概念
    • 为何要提供抽象?
      • 厂商为自己硬件提供的驱动程序往往是复杂且丑陋的,擦偶做系统为了隐藏这些复杂的信息,为用户提供了更好的接口。
      • 用户使用的shell、Gnome、KDE等看到的虽然都是不同的界面,但其实都是使用了同一套由Linux操作系统提供的抽象接口
  2. 管理硬件资源和应用程序,把多个程序对硬件的竞争变得有序化
    • 操作系统同时运行多道程序,其任务就是在相互京城的程序之间有序的控制处理器、存储器、其他IO接口设备的分配
    • 以打印机为例
      • 操作系统将打印机的结果送到磁盘的缓冲区,在一个程序完全结束之后,将存放在缓冲区的文件送到打印机输出,同时其他程序可以继续产生更多的输出结果,但是这些结果并没有真正送到打印机。这样,操作系统就将由竞争产生的无序变得有序化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值