概述
基本特征:
并发:
并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
并行需要硬件支持,如多流水线或多处理器。
操作系统通过引入进程和线程,使得程序能够并发运行。
共享:
共享是指系统中的资源可以被多个并发进程共同使用。
有两种共享方式:互斥共享和同时共享。
互斥共享的资源称为临界资源,操作临界资源的代码称为临界区。例如打印机等,在同一时间只允许一个进程访问,需要用同步机制实现对临界资源的访问。一般读操作可以同时共享,写操作需要互斥共享。
虚拟:
虚拟技术把一个物理实体转换为多个逻辑实体。
主要有两种虚拟技术:时分复用技术和空分复用技术。
多个进程能在同一处理器上 并发执行使用了时分复用 技术,让每个进程轮流占有处理器,每次只执行一个小的时间片并快速切换。
虚拟内存使用了空分复用技术 ,它将物理内存抽象为地址空间,每个进程都有自己的地址空间。地址空间和物理内存使用页表进行交换 ,地址空间的页并不需要全部在物理内存中,当使用到一个没有物理内存的页时,执行页面置换算法,将该页置换到内存中。
异步:
异步指进程不是一次性执行完毕,,而是走走停停,以不可知的速度向前推进。
基本功能:
进程管理:
进程控制,进程同步,进程通信,死锁处理,处理器调度等。
内存管理:
内存分配,地址映射,内存保护与共享,虚拟内存等。
文件管理:
文件存储空间的管理,目录管理,文件读写管理和保护。
设备管理:
完成用户IO请求,方便用户使用各种设备,并提高设备使用率。
主要包括缓冲管理,设备分配,设备处理,虚拟设备等。
系统调用:
如果一个进程在用户态需要使用内核态的功能,仅需要进行系统调用从而陷入内核,由操作系统代为完成。
linux的系统调用主要有以下:
Task(工作) | Commands(命令) |
---|---|
进程控制 | fork();exit();wait() |
进程通信 | pipe();shmget();mmap() |
文件操作 | open();read();write() |
设备操作 | ioctl();read();write() |
信息维护 | getpid();alarm();sleep() |
安全 | chmod();umask();chown() |
大内核和微内核
大内核
大内核是将操作系统功能作为一个整体放入内核,由于各模块共享信息,因此性能很高。
微内核
由于操作系统不断复杂,因