1、什么是操作系统?它有哪些功能和特征?
操作系统的定义:操作系统是管理和控制硬件、软件资源的计算机程序,可直接运行在裸机上的计算机最基本的系统软件。
功能:
- 管理计算机系统的硬件、软件和数据资源;
- 控制程序运行,改善人机交互界面,为其他应用软件提供支持;
- 使计算机系统所有资源发挥最大的作用;
- 为其他软件的开发提供必要的服务和相应的接口。
特征:
- 并发:是指两个或两个以上的事件在同一时间间隔内发生;
- 共享:系统中的资源可供内存中的多个并发执行的进程共同使用;
- 虚拟:把一个物理上的实体变为若干个逻辑上的对应物;
- 异步:在多道程序环境下,允许多个程序并发执行,但因资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进。
2、什么是管态和目态?区分管态和目态的目的是什么?
管态:又称特权态、系统态或核心态。cpu在管态下可以执行指令系统的全集。如果程序是处于管态下,则该程序将可以访问计算机的任何资源,即它的资源访问权限不受限制。通常情况下,操作系统是在管态下运行。
目态:又称常态或用户态。机器处于目态时,程序只能执行非特权指令,不能直接使用系统资源,也不能改变cpu的工作状态,并且只能访问这个用户程序自己的存储空间。(注:特权指令指的是计算机中不允许用户直接使用的程序,比如说I/O指令、中断指令等)。
区分管态和目态的目的:保护操作系统程序。
3、怎么从用户态切换到核心态?
- 系统调用:用户进程通过系统调用申请去使用操作系统所提供的服务程序,从而完成工作。系统调用的核心机制是使用了操作系统为用户所特别开放的一个中断来实现。
- 异常:当cpu执行用户态进程程序时,发生了不可知的异常时,会触发由当前运行进程切换到处理此异常的内核相关程序中,也就是转到了内核态,例如缺页异常。
- I/O设置的中断:当I/O设备完成用户请求操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令,转而去执行与中断信号对应的处理程序,如果先前执行的指令时用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。
4、什么是进程?它有哪几种状态?
进程的定义:进程是系统进行资源分配的独立实体,且每个进程拥有独立的地址空间。一个进程无法直接访问另外一个进程的变量和数据结构,如果需要访问另一个进程的资源,需要使用进程间的通信,例如:管道、文件、套接字。
每个进程都拥有一个进程控制块,它保存运行期间进程的数据,PCB是进程存在的唯一标志。
- 创建状态:
- 就绪状态:
- 运行状态:
- 阻塞状态:
- 结束状态:
5、什么是线程?线程和进程的区别?
线程:线程可以理解为轻量级的进程,它也是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。
区别:
- 进程是资源分配和调度的一个独立单元,而线程数CPU调度的基本单元;
- 同一个进程中可以包括多个线程,并且线程共享整个进程的资源,一个进程至少包括一个线程;
- 进程的创建调用fork,而线程的创建调用pthread_create
- 线程是轻量级的进程,它的创建和销毁所花时间比进程小很多;
- 线程执行时一般都要进程同步和互斥的操作,因为他们共享同一进程的所有资源;
- 线程有自己的线程控制块,这是线程私有的属性,而进程也有自己的进程控制快,这些私有属性是不能被共享的。
6、进程之间的通信有哪几种?
- 共享内存模式:在通信进程之间存在一块可直接访问的共享空间,通过对这块共享空间进行读写操作,来实现进程之间的信息交换;
- 消息传递模式:进程通过系统提供的发送消息和接收消息的两个原语进行数据交换;
- 共享文件模式:用于连接一个读进程和一个写进程以实现它们之间通信的文件就是共享文件,又名(管道文件),向管道提供输入的发送进程,以字符流形式将大量的数据送入写管道;而接受管道输出的读进程,则从管道中读数据。为了协调双方的通信,管道机制必须提供互斥、同步和确定对方存在三个方面的协调能力。