关于并行和并发的区别:
并行:在一个时间点(同一时间)执行多个程序,这需要CPU具有多核;
并发:在一个时间片段执行多个程序;
分时操作系统-------》分布式操作系统
分布式操作系统,将程序扔到云上或者数据中心去计算
BIOS(basic IO system)———》Bootloader————》OS
Bootloader将OS从Disk加载到memory;
关于逻辑地址和物理地址的映射
逻辑地址到物理地址的映射是由MMU(memory mamange unit)来提供的。
进程和程序的区别
- 程序是进程的基础
- 进程:包含程序代码和+程序代码需要处理的数据
- 从程序执行角度来看,一个程序可以对应多个进程,因为每次执行的时候创建的进程不同,所使用的数据也可能不同;从调用角度来说,一个进程又可以包含多个程序;
进程的特点
- 动态
- 并发
- 独立性
- 制约性
进程是由操作系统来分配和创建的,操作系统本质上也是一个程序,那么由一般的程序组成结构来看,程序 = 数据结构 + 算法;
操作系统中的数据结构就是,PCB(process control block) ,通过PCB来进行进程的创建、终止和组织管理;
PCB的实现显然是动态的,因此其内部实现为List 或者 索引表,来实现进程的动态插入和删除;
线程提出的原因:
线程定义:线程是进程中的一条执行流程;
进程的功能进程拆分:资源管理 + 线程,也就是说线程承担了执行的功能;
线程 = 进程 - 共享资源
线程的特点:
- 一个进程中可以同时存在多个线程;
- 各个线程之间可以并发的执行;
- 各个线程之间可以共享地址空间和文件资源等
线程的缺点:
- 一个线程崩溃,会导致同一进程中的所有线程崩溃;
进程是资源分配单位,线程是CPU调度单位;
进程拥有一个完整的资源平台,线程只独享必不可少的起源,如其自己的寄存器(register)和栈(stack);
线程同样具有就绪、阻塞和执行三种状态,同样具备状态之间的转换关系;
线程能较少并发执行的时间和空间开销:
- 线程创建时间比进程短;
- 线程结束时间比进程快;
- 同一进程内线程切换时间比进程短;
- 由于同一进程中的线程共享内存和文件资源,可直接进行不通过内核的通信;