《计算机科学概论》13版#3章--操作系统

127 阅读5分钟

操作系统

操作系统是指协调计算机内部活动以及与外部环境通信的软件包的软件包。

重点是理解操作系统做了哪些工作。以及操作系统中的一些概念指的是什么。

操作系统的任务就是管理当前的这些进程,使每个进程都有其需要的资源(外围设备、主存储器空间、对文件的访问以及对CPU的访问),确保独立的进程不会相互干扰,确保需要交换信息的进程能够交换信息。

章节总结

  1. 操作系统的体系结构
  2. 协调了哪些活动,如何协调
  3. 处理进程间的竞争

操作系统的体系结构

软件分为:应用软件和系统软件。

应用软件:是指处理特定的任务的软件,对于用户来说是可选的,满足了特定的需求。系统软件:完成的是一般计算机都需要完成的任务。

系统软件又分为操作系统本身,和实用软件。

实用软件:是指计算机运行的基础,但没有包含在操作系统中的软件。从某种意义上来说,实用软件是指一些能够扩充(或定制)操作系统功能的软件单元。比如格式化磁盘、压缩解压数据、播放多媒体内容、处理网络通信等软件

操作系统组件:

  1. 用户界面

    现在的操作系统都采用图形话用户界面(graphical user interface, GUI),实现操作系统与用户的交互。其中的窗口管理程序,管理着若干个程序和对应的程序的通信。

  2. 文件管理程序

    文件管理程序维护着存储在海量存储器上的所有文件的记录,包括每个文件的位置、访问权限,以及海量存储器里的哪些部分可以用来建立新文件或扩充现有文件。

  3. 设备驱动器

    设备驱动器负责与控制器通信。每个设备驱动器都是专门为特定类型的设备设计的,它把通用请求翻译为这种设备所能解析和处理的步骤。这样,运行在操作系统上的应用程序在调用这个外设的时候就不用考虑型号等因素。

  4. 内存管理程序

    负责协调机器使用主存储器的任务。比如回收、分配空间,限制每个程序只能访问所分配的空间。处理当主存储器空间不够用等情况。

  5. 调度程序

    调度程序维护一个有关计算机系统中现存的进程的记录(进程池),将新进程加到该进程池中,并把已经完成的进程移除进程池。进程池是用来管理多个进程的创建和销毁。

    调度程序还维护着一个进程表(process table),进程表包含每个进程的相关信息,包括分配给这个进程的存储区域、进程的优先级以及该进程是处于就绪状态还是等待状态等。(就绪状态:如果进程能够继续执行的时候,等待状态:如果进程需要等待某个外部事件的时候)

  6. 分派程序

    分派程序用来监督被调度的进程执行情况。比如分派程序给被调用的进程分配一个时间片,计时电路会在时间片结束时产生一个中断信号,将控制权还给分配程序,分配程序会从进程表中的就绪进程中选择优先级最高的进程并分配给该进程一个时间片。

操作系统协调了哪些活动,如何协调?

  1. 多用户同时访问同一台计算机,一台计算机如何处理同时执行的多个任务?

    我们可以让操作系统具备分时(time-sharing)处理请求的特性,也就是把时间分成时间片,每个时间片内只执行其中一个请求(任务),这个时间片结束后,就将该请求(任务)挂起,开启下一个时间片,处理下一个请求(任务)。

  2. 进程&线程

    进程:我们把在操作系统等控制下执行某个程序的活动称为进程(process)。当前活动程序的状态称为进程状态(process state)。

    线程:线程是进程内的执行单元,一个进程可以包含多个线程,这些线程共享同一进程的资源。

    线程是用来在进程内实现并发执行。

  3. 死锁

    当多个进程执行时,他们中的每个进程都在等待已经分配给其他进程的资源。这个时候这些进程就被阻塞了,形成了死锁。

    解决死锁的方法有很多,其中一种是 假脱机(spooling)。例如:当多个进程都请求打印机打印东西时,我们把这些进程要打印的东西保存起来,并告诉进程已经发送给打印机了,当打印机空闲的时候,我们再把保存的数据拿出来打印。这种保存数据供以后在合适的时候输出的技术称为假脱机。