计算机操作系统(1)

概述

摘自 github CS-Notes - 计算机操作系统


一、基本功能

1. 内存管理 *

内存分配、地址映射、内存保护与共享、虚拟内存、...

2. 进程管理 *

进程控制、进程同步、进程通信、死锁处理、处理机调度、...

3. 文件管理

文件存储空间管理、目录管理、文件读写管理和保护、...

4. 设备管理

缓冲管理、设备分配、设备处理、虚拟设备、...(完成用户的I/O请求,方便用户使用各种设备,提高设备利用率)


二、基本特征

1. 并发 *

并发 宏观上在一段时间内能同时运行多个程序(实际上是交替执行)
并行 同一时刻能运行多个指令,需要硬件支持(如流水线、多处理器)
操作系统引入进程线程实现并发。

2. 共享

共享 系统中的资源可以被多个并发进程共同使用
两种共享方式:互斥共享同时共享
互斥共享的资源称为临界资源,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。

3. 虚拟

虚拟技术 把一个物理实体转换为多个逻辑实体
两种虚拟技术 ——
  时分复用技术 :如多个进程能在同一个处理器上并发执行使用时分复用技术,每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。
  空分复用技术 :虚拟内存使用了空分复用技术,将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间和物理内存使用页进行交换,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。

4. 异步 *

异步 进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进
异步的意义:A进程正在执行一个“读取某个大文件中的数据并执行计算”的任务,但是读数据这个IO操作很耗时间,而此时B进程正在等待A进程的完成任务,这样就会造成时间浪费。异步操作会在A进行IO操作的时候,将CPU使用权交给B进程,并保存自己当前的状态;待A进程完成IO操作,CPU使用权又回到A进程。


三、系统调用

如果一个进程在 用户态 需要使用 内核态 的功能,就进行 系统调用 从而陷入内核,由操作系统代为完成。

系统调用流程

Linux的主要系统调用

进程控制: fork() , exit() , wait()
进程通信: pipe() , shmget() , mmap()
文件操作: open() , read() , write()
设备操作: ioctl() , read() , write()
信息维护: getpid() , alarm() , sleep()
安全: chmod() , umask() , chown()


四、内核

  1. 大内核 将操作系统功能作为一个紧密结合的整体放到内核 ;各模块共享信息,因此性能很高。
  2. 微内核 将一部分操作系统功能移出内核降低内核复杂性。移出的部分根据分层的原则划分成若干服务,相互独立 ;剩下来的那部分就构成了微内核
    在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态

用户态和内核态之间频繁的切换会造成一定的性能损失

微内核架构

五、中断

1. 外中断

CPU 执行指令以外的事件引起,如 I/O 完成中断 ,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断控制台中断等。

2. 异常

CPU 执行指令的内部事件引起,如非法操作码地址越界算术溢出等。

3. 陷入

在用户程序中使用系统调用。

你可能感兴趣的:(计算机操作系统(1))