在面试计算机相关岗位时,会问到一些操作系统相关的知识点,这里是根据以往的亲身经历写的一些内容,不过暂时没有把内容写完整,后期会陆续添加到里面来。
1、操作系统的四个特性
- 并发:同一段时间内多个程序执行(注意区别并行和并发,并行是同一时刻的多个事件,并发是同一时间段内的多个事件)
- 共享:系统中的资源可以被内存中多个并发执行的进线程共同使用
- 虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个
- 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进
2、进程和线程以及它们的区别
-
进程是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发(如:用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等,然后该进程被放入到进程的就绪队列,进程调度程序选中它,为它分配CPU及其他相关资源,该进程就被运行起来);
-
线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;
-
引入线程主要有以下4个方面的优点:
- 易于调度。
- 提高并发性。通过线程可以方便有效地实现并发。
- 开销小。创建线程比创建进程要快,所需要的开销也更小。
- 有利于发挥多处理器的功能。通过创建多线程,每个线程都在一个处理器上运行,从而实现应用程序的并行,使每个处理器都得到充分的运行。
-
尽管线程和进程很相似,但两者也存在着很大的不同,区别如下:
- 一个程序至少有一个进程,一个进程至少有一个线程,线程依赖于进程而存在;
- 进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存空间。属于一个进程的所有线程共享该进程的所有资源,包括打开的文件,创建的Socket等。不同的进程互相独立。
- 线程又被称为轻量级进程。进程有进程控制块,线程有线程控制块。但线程控制块比进程控制块小得多。线程间切换代价小,进程间切换代价大。
- 进程是程序的一次执行,线程可以理解为程序中一段程序片段的执行。
3、进程间的通信的几种方式
- 管道及命名管道、信号、消息队列、共享内存、信号量、套接字。
4、线程同步的方式
- 临界区、互斥量、信号量、事件(信号)