01.操作系统概述
# 01.操作系统概述
# 1、操作系统的本质
# 1)操作系统本质
- 操作系统位于
用户应用程序和硬件之间,负责资源的管理和协调
- 操作系统是用于管理硬件资源、为用户提供一个抽象界面的系统软件
- 其核心职责是调度硬件资源(如CPU、内存、I/O设备等)
- 并为用户和应用程序提供一个简洁且统一的操作接口
# 2)操作系统的核心特性
- 操作系统的核心特性揭示了它如何管理资源和提供服务,主要体现在以下几个方面
并发(Concurrency)
- 并发是指在宏观上操作系统允许多个任务同时运行
- 每个任务都被视为一个独立的进程或线程,通过操作系统的调度算法在CPU上交替执行
- 这一特性使得操作系统可以提高系统资源的利用率和程序运行效率
并行(Parallelism)
- 是并发的特例,指的是在多核处理器或分布式系统中,真正意义上同时执行多个任务
共享(Sharing)
系统资源如CPU、内存、存储设备、网络等可以被多个进程或线程共享
共享有两种方式:
- 互斥共享(如临界资源,只允许一个进程访问)
- 同时共享(如读文件的多个进程可以同时读取数据)
操作系统通过同步机制确保在互斥共享资源时不会产生竞争冲突
虚拟化(Virtualization)
操作系统通过虚拟化技术,将物理资源虚拟为多个逻辑资源
比如通过虚拟内存,操作系统将有限的物理内存抽象成更大的逻辑地址空间,使得多个程序可以运行
虚拟化包括两种方式:
- 时间分复用(如CPU调度,多个进程轮流使用CPU)
- 空间分复用(如虚拟内存,每个进程都能看到自己的独立地址空间)
异步(Asynchrony)
- 异步是指进程的执行并不是连续的,它会因为中断、系统调度等原因走走停停,以不可预测的速度推进
- 操作系统通过调度进程,在适当时刻恢复进程的运行,确保多任务的并发执行
# 2、操作系统的主要功能
# 1)进程管理
- 进程管理是操作系统管理程序执行和系统资源分配的核心任务
- 进程控制:
- 负责创建和销毁进程
- 通过
fork()
等系统调用,操作系统可以启动新的进程 - 通过
exit()
,进程可以终止自身
- 进程同步:
- 当多个进程需要协同工作时,操作系统通过同步机制(如信号量、互斥锁等)
- 确保进程在共享资源时不发生冲突
- 进程通信:
- 进程间通信(IPC)允许多个进程之间传递信息,常见的通信机制包括消息队列、管道、共享内存、套接字等
- 进程调度:
- 通过调度算法(如时间片轮转、优先级调度等),操作系统决定哪个进程在何时运行
- 调度算法的选择影响系统性能和响应时间
# 2)内存管理
内存管理是操作系统的核心功能之一,用于控制和分配计算机系统的内存资源它主要包括:
- 内存分配:操作系统动态分配内存给进程,并在进程结束后回收内存
- 地址映射:操作系统将进程的虚拟地址空间映射到物理内存地址,虚拟内存通过页表来维护这种映射关系
- 内存保护:操作系统保护进程的内存不被其他进程随意访问,确保内存空间的安全性和隔离性
- 虚拟内存:虚拟内存技术允许程序使用比实际物理内存更多的内存空间通过页面置换算法,操作系统可以将暂时不需要的页面存储到硬盘,从而释放物理内存
# 3)文件管理
文件管理系统为用户和应用程序提供方便的文件操作接口主要功能包括:
- 文件存储管理:操作系统负责在存储设备上管理文件的存储空间,确保文件系统的一致性和效率
- 目录管理:文件被组织成树形目录结构,操作系统维护文件的路径和访问权限
- 文件操作接口:操作系统提供标准化的文件读写接口,允许用户和程序进行文件的创建、删除、读写操作
- 文件保护:操作系统通过权限控制和加密机制保护文件的安全,确保只有授权的用户可以访问文件
# 4)设备管理
- 设备管理涉及对各种输入输出设备(如硬盘、显示器、网络接口等)的控制
- 设备分配与调度:
- 操作系统通过设备驱动程序协调设备的使用,提高设备的使用效率
- I/O 管理:
- 操作系统提供标准化的设备接口,允许应用程序通过系统调用执行I/O操作
- 虚拟设备:
- 通过虚拟设备技术,操作系统可以将物理设备虚拟化,以便多个进程同时使用
- 例如,通过虚拟网络接口实现虚拟机之间的网络通信
# 3、系统调用
- 系统调用是用户程序与操作系统交互的主要方式
- 当用户程序需要访问硬件资源或执行特权操作时
- 会通过系统调用陷入内核,操作系统代为执行操作
- 系统调用的分类及其作用如下
- 进程控制:
fork()
创建进程,exit()
终止进程,wait()
等待子进程结束 - 进程通信:
pipe()
管道通信,shmget()
共享内存,mmap()
内存映射 - 文件操作:
open()
打开文件,read()
读取文件,write()
写入文件 - 设备操作:
ioctl()
设备控制操作,read()
和write()
也可用于设备文件 - 信息维护:
getpid()
获取进程ID,alarm()
设置定时器,sleep()
使进程睡眠 - 安全操作:
chmod()
改变文件权限,umask()
设置文件创建掩码,chown()
更改文件所有者
# 4、操作系统内核架构
- 操作系统的内核架构决定了其性能、模块化和扩展性
- 根据功能的组织方式,内核主要分为两种
宏内核(Monolithic Kernel)
- 宏内核是将所有
核心功能集成在一个大模块中,各模块共享同一个内存空间
- 这种设计虽然性能高,但内核庞大且复杂,出错后整个系统容易崩溃
- 宏内核是将所有
微内核(Microkernel)
- 微内核将核心功能(如进程间通信、内存管理)保持在
内核中
,而将其他功能(如文件系统、设备驱动)移至用户空间
- 这样可以
降低内核的复杂性
和内核态与用户态之间的切换成本
,但由于频繁的上下文切换,性能可能受到影响
- 微内核将核心功能(如进程间通信、内存管理)保持在
# 5、中断处理机制
- 中断是操作系统处理外部或内部事件的机制,能够使操作系统响应各种非顺序的事件
- 根据中断来源的不同,可以分为
- 外中断:由外部硬件事件触发,如I/O设备完成操作,或定时器引发的时钟中断
- 异常:由CPU在执行指令时遇到的错误引发,如非法指令、除零错误、内存访问越界等
- 陷入:用户程序通过系统调用主动触发的中断,请求操作系统服务
上次更新: 2024/10/15 16:27:13