计算机基础知识:操作系统

1. 进程的有哪几种状态,状态转换图,及导致转换的事件。

1. 运行状态
2. 就绪状态
3. 阻塞状态
4. 创建状态
5. 结束状态
事件:获得处理机,被剥夺处理机(用完时间片,出现更高优先级别的进程),运行受阻(申请资源被占用、启动I/O传输未完成)

2. 进程与线程的区别。

1. 调度:在传统操作系统中,拥有资源和独立调度的基本单位都是进程。引入线程后,线程是CPU独立调度的基本单位,进程是拥有资源的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同进程中进行的线程切换,则会引起进程切换。
2. 拥有资源:不论是传统的还是引入了线程的操作系统,进程都是拥有资源的基本单位,线程不拥有资源,但线程可以共享隶属进程的系统资源。
3. 并发性:在引入线程的操作系统中,不仅进程可以并发执行,而且同一进程内的多个线程也可以并发执行,从而使操作系统具有更好的并发性,大大提高了系统吞吐量。
4. 系统开销:创建和撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,因此操作系统所付出的开销远大于创建或撤销线程的开销。类似地,在进程切换时,涉及当前执行进程CPU环境的保存以及新调度的进程CPU环境的设置;而线程切换时只需保存和设置少量寄存器内容,因此开销很小。另外,由于同一进程内的多个线程共享的地址空间,因此这些线程之间的同步与通信比较容易实现,甚至无需操作系统的干预。
5. 地址空间和其他资源:进程的地址空间之间互相独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见。
6. 通信方面:进程间通信需要借助操作系统,而线程间可以直接读/写进程数据段(如全局变量)来通信。
7. 进程:PCB(进程标识符+处理机状态+进程调度信息+进程控制信息)+程序+数据,提高系统的利用率,增加系统吞吐量
8. 线程:TCB+程序计数器+寄存器+堆栈,提高程序并发执行的程度

3. 进程通信的几种方式。

1. 管道pipe:一个读的进程和一个写进程以实现它们之间通信的一个共享文件,以字符流形式写和读。
2. 信号signal:比较复杂的通信方式
3. 消息Messgae:将通信的数据封装在消息中,并利用原语,在进程间进行消息传递。可以直接发送给目标进程,或者使用贡献中间实体(邮箱、消息队列)
4. 共享内存:最快的可用IPC形式,效率高
5. 信号量semaphore:进程间以及同一进程不同线程之间的同步手段。
6. 套接字Socket:用于不同机器之间的进程通信

4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)

+ Linux:互斥体、信号量、条件变量
+ Windows:临界区(Critical Section)、互斥量(Mutex)、信号量、事件

5. 线程的实现方式。(就是用户线程与内核线程的区别)

6. 用户态和核心态的区别。

7. 用户栈和内核栈的区别。

8. 内存池、进程池、线程池。(c++程序员必须掌握)

9. 死锁的概念,导致死锁的原因.

1. 死锁概念:多个进程因竞争资源而造成一种僵局(互相等待),若无外力作用,这些进程都无法向前推进。
2. 原因:系统资源的竞争、进程推进顺序非法、死锁产生的必要条件。

10. 导致死锁的四个必要条件。

1. 互斥条件:进程要求对所分配的资源进行排他性控制,即在一段时间内某资源仅为一个进程所占有。其他进程请求该资源时只能等待。
2. 不可抢占条件:该资源不能被其他进程夺走,只能由进程释放。
3. 请求和保持条件:进程每次申请它所需要的一部分资源,在等待新资源的同时,进程继续占有已分配到的资源。
4. 循环等待条件:进程和资源的循环链。

11. 处理死锁的四个方式。

1. 预防死锁:破坏四个必要条件中的一个或几个
2. 避免死锁:银行家算法
3. 检测死锁:系统及时检测出死锁的发生
4. 解除死锁:资源剥夺法、撤销进程法、进程回退法

13. 进程调度算法。

1. 先来先服务FCFS:作业调度和进程调度
2. 短作业优先SJF:运行时间最短
3. 优先级调度算法PSA:根据优先级
4. 高响应比优先调度算法HRRN:(等待时间+要求服务时间)/要求服务时间
5. 时间片轮转调度算法

14. Windows内存管理的方式(块式、页式、段式、段页式).

15. 内存连续分配方式采用的几种算法及各自优劣。

1. 首次适应算法(FF):链首开始顺序查找,优先使用内存中低址部分的空闲分区,留下大的空间。但是会产生很多难以利用的、很小的空闲分区,每次又是从低址查找,增加开销。
2. 循环首次适应算法(NF):从上次找到的空闲分区的下一个空闲分区开始查找,解决小的空闲分区过多问题,但是会缺乏大的空闲分区。
3. 最佳适应算法(BF):从小到大的空闲分区表,找到第一个满足的,每次留下的剩余部分总是最小的,但在存储器中会留下许多难以利用的碎片。
4. 最坏适应算法(WF):找出最大的空闲区,从中分割一部分存储空间给作业使用。可使用的空闲区不至于太小,产生碎片的可能性最小,对中小作业有利,查找效率高,第一个空间就是最大的空闲分区。

16. 动态链接及静态链接.

17. 基本分页、请求分页储存管理方式。

 + 基本分页:把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位进行划分,进程在执行时,以块为单位逐个申请主存中的块空间。
 + 地址结构:页号P(地址空间最多有2^P页)+页内偏移量M(页面大小2^M)
 + 页表:页号到物理块号的地址映射。
 + 请求分页:将当前需要的一部分页面装入内存,便可以启动作业运行,在作业执行过程中,当所要访问的页面不存在时,通过调页功能将其调入,同时通过置换功能将暂时不用的页面换到外存上。

18. 基本分段、请求分段储存管理方式。

 + 基本分段:按用户进程中的自然段划分逻辑空间,用户进程(主程序、两个子程序、栈和一段数据组成)。
 + 地址结构:短号S+段内偏移量W

19. 分段分页方式的比较各自优缺点。

+ 分页:提高内存利用率
+ 分段:反映程序的逻辑结构并有利于段的共享

20. 几种页面置换算法,会算所需换页数。(LRU用程序如何实现?)

1. 最佳置换算法:选择被淘汰页面将是以后永远不使用的,或许是在最长(未来)时间内不再被访问的页面。
2. 先进先出页面置换算法:淘汰最早进入页面
3. 最近最久未使用置换算法(LRU):淘汰最久未使用的页面。寄存器(R来记录访问,如果访问某一页,对应R的最高位设1,然后定时右移,每次淘汰R最小),栈(将使用的页面从栈中移出来,加入到栈顶,每次淘汰栈低元素)

21. 虚拟内存的定义及实现方式。

+ 定义:基于局部性原理,请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
+ 分页请求系统、分段请求系统或请求段页式存储管理,一定容量的内存和外存、页表机制、中断机构、地址变换机构(逻辑地址到物理地址的变换)

22. 操作系统的四个特性。

1. 并发:两个或多个事件在同一时间间隔内发生。操作系统中同时存在多个运行着的程序
2. 共享:系统中的资源可以被多个并发执行的程序共同使用。
3. 异步:在多道程序环境下,多个程序并发执行,但是由于资源有限,进程执行不是一贯到底的。而是走走停停,以不可预知的速度向前推进。
4. 虚拟:把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。

23. DMA。

24. Spooling。

25. 外存分配的几种方式,及各种优劣。

26. 操作系统的主要功能

1. 处理机管理功能
2. 存储器管理功能
3. 设备管理功能
4. 文件管理功能

相关日志

发表评论

电子邮件地址不会被公开。 必填项已用*标注