操作系统-个人总结与思考
- 什么是进程(Process)和线程(Thread)?有何区别?
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。
进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。
2.谈谈操作系统的内存管理
围绕内存管理三个核心词展开:翻译、保护、内存分配。
1.保护:程序是如何在内存中执行的? 运行时重定位(为执行程序而对其中出现的地址所做的修改)支持移动和保护。
2.内存分配:
连续内存分配:碎片问题、内存紧缩时间成本太高
分段: 段号+段内偏移 碎片问题
分页: 页号+偏移
段页结合: 段号+偏移 (逻辑地址)—> 页号+偏移(线性地址) —> 物理页号+偏移(物理地址)
3.翻译:地址翻译
另外就是虚拟内存技术:
优点:
实现:按需调页(请求调页)
页面置换策略:
1.FIFO:先入先出
2.OPT(MIN):选择未来最远将使用的页淘汰
3.LRU:最近最少是用
LRU实现:计数器法、页码栈法、近似实现的clock算法
其他问题: 需要给进程分配页框(帧) => 全局、局部 => 颠簸 =>Belady异常=>栈式算法
谈谈CPU调度
CPU调度的概念,抢占式调度与非抢占式调度,
CPU调度算法:
(1)先到先服务调度 FCFS
(2)最短作业优先调度 SJF、SRJF
(3)优先级调度
(4)转轮法调度 RR
(5)多级队列调度
(6)多级反馈队列调度
Linux系统采用调度方法:采用优先权的、基于信用度的、可抢占的RR调度谈谈进程互斥与同步
互斥与临界区的概念
进程同步的概念
解决临界区问题的方法-实现互斥与同步
(1)一般软件方法
(2)关中断方法
(3)硬件原子指令方法
(4)信号量方法