前言
本文介绍了操作系统的基本概念,文章中的内容来自B站王道考研操作系统课程,想要完整学习的可以到B站官方看完整版。
一:操作系统基本概念
1.1.1:基本概念和功能
操作系统:系统资源的管理者(处理机管理、存储器管理、文件管理、设备管理)
交互式命令(在终端中输命令)和批处理命令(Shell脚本)
1.1.2:基本特征(并发、共享、虚拟、异步)
并发:宏观上同时发生,微观上还是一件一件事交替发生
并行:同一时刻做多件事
单核CPU只能并发、多核CPU可以并行
资源共享(互斥共享、同时共享)
虚拟技术(空分复用、时分复用):把物理上的实体变为若干逻辑上的对应物
空分复用:
时分复用技术:微观上处理机在各个微小的时间段内交替为各个进程服务
异步性:多个程序并发执行时,由于系统资源有限,一个进程可能此时占着一份资源,另一个程序想用却用不了
1.2.1:操作系统的发展和分类(多道批处理系统、分时操作系统、实时操作系统、分布式操作系统)
多道批处理系统:
分时操作系统:计算机以时间片的单位轮流执行各个程序,允许多个程序使用一个处理器,并且多个程序对计算机的操作相互独立,缺点就是不能优先处理一些紧急的任务,每个程序都是完全公平的。
实时操作系统:能够优先响应一些紧急的任务,某些紧急的任务不需要时间片排队。计算机系统在收到外部信号后及时进行处理,并且严格要求在有限的时间内处理完事件。
实时操作系统又分硬实时操作系统和软实时操作系统
分布式操作系统:系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
1.3.1:操作系统运行机制(特权指令、内核态、非特权指令、用户态)
CPU在内核态和用户态之间的切换
内核态->用户态:操作PSW寄存器相关位
用户态->内核态:产生中断信号
1.3.2:中断和异常(内中断、外中断)
内中断:与当前执行的指令有关,中断信号来源于CPU内部
1:CPU处于用户态执行了一条特权指令
2:一些非法的操作(除数为0)
3:陷入指令(非特权指令),在应用程序中使用系统调用
外中断:与当前执行的指令无关,中断信号来自CPU外部(时钟中断、I/O输入输出中断)
1:时钟中断(多个程序可以并发运行的基础)
2:IO中断
1.3.3:系统调用
系统调用是操作系统提供给应用程序的一组接口,用于访问操作系统的服务和资源。应用程序通过系统调用向操作系统发出请求,操作系统则执行相应的操作并返回结果给应用程序。
1.4.1:操作系统的引导(Linux启动流程)
1、BIOS自检:计算机开机之后,执行BIOS的自检程序,检查硬件设备是否正常。如果硬件功能都正常就会启动引导加载程序(boot loader)。
2、引导加载程序(boot loader):引导程序是Linux启动的第一个程序,其作用是将内核映像文件(vmlinuz)加载到内存中,常用的引导程序有grub和lilo。
3、内核初始化:内核镜像文件加载到内存之后会进行初始化,然后启动内核进程(硬件初始化、加载驱动、挂载文件系统等)
4、init进程启动:内核初始化完成之后会启动第一个用户进程init,init是用户空间进程的父进程,会执行一些初始化脚本的。
5、根据运行级别启动相应的服务:init进程启动之后会根据runlevel的设置来执行相应的初始化脚本,执行系统服务和进程。
/etc目录下七个不同运行级别会启动的服务程序存放文件夹
软链接本质指向的还是/etc/init.d下的程序
6、用户登录:所有系统服务启动完成之后就是用户输入用户名和密码