操作系统

面试笔记

Posted by 溜大虾 on July 25, 2017

操作系统

操作系统算是基础了,重点就这么几个

进程

  • 什是进程?一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
  • 进程是资源申请和系统调度的基本单位
  • 进程描述了程序的动态执行过程。
  • 对应处理机、存储器和外设等资源的分配和回收
  • 反映系统中程序执行的并发性、随机性和资源共享
  • 多进程提高了对硬件资源的利用率,但有带来了额外的空间和时间开销,增加了OS的复杂性

进程与程序

  • 进程是动态的,程序是动态的
  • 进程是暂时的,程序是永久的
  • 进程与程序的组成不同
  • 进程更能真实的描述并发,程序不能
  • 进程可创建其他进程,程序不能
  • 一个程序对应于若干个不同的进程,进程是程序的一次执行

进程生命周期

新建-就绪-执行-阻塞-刮起阻塞-挂起就绪-退出

进程间通信

通信分为低级通信和高级通信

  • 低级通信:以信号量作为通信工具,交换的信息量少
  • 高级通信:操作系统提供的一组通信命令,高效的传送大量数据

高级通信的方式:共享内存、消息队列、管道、套接字、文件、信号、内存映射文件

进程与线程区别

概念上:

  • 进程:一个程序对一个数据集的动态执行过程,是分配资源的基本单位
  • 线程:一个进程内的基本调度单位,一个进程可以包含一个或多个线程

从执行结果看:

  • 进程:用够独立的内存单元,而多个线程共享内存
  • 线程:每一个独立的线程都有一个程序运行的入口、顺序执行序列、程序的出口。但是线程不能独立执行,必须依存在应用程序中

从逻辑角度看:

  • 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行,但是操作系统并没有将多个线程看做多个独立的应用,来实现进程间的调度和挂你及资源分配

死锁

什么是死锁?

多个进程在运行过程中因争夺资源而造成一种僵局,当进程处于这种僵持状态时若无外力作用,他们都将无法向前推进

产生的原因

  • 资源不足导致的资源竞争:多个进程所共享的资源不足,引起他们对资源的竞争而产生死锁
  • 并发顺序不当:当进程运行过程中,请求和释放资源的顺序不当,而导致进程死锁

充要条件

互斥-占有且等待-非剥夺-循环等待

处理死锁的基本方法

预防-避免-检测接触-忽略

虚拟存储

具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充