0%

操作系统-操作系统

操作系统

什么是操作系统?

  • 操作系统(Operating System)是管理计算机硬件和软件资源的程序 是计算机的基石

  • 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。

  • 操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。

  • 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。

根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:

  1. 用户态(user mode) : 用户态运行的进程可以直接读取用户程序的数据。
  2. 系统态(kernel mode):可以简单的理解系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。

线程与进程的关系

线程是进程划分成最小的运行单位,一个进程在其执行的过程中可以产生多个线程。

线程与进程最大的区别是

进程各部分是独立的 而各线程则不一定·

因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反

进程有哪几种状态

  • 创建状态: 进程目前正在被创建,尚未到就绪状态。
  • 就绪状态: 进程已处于准备允许状态。即进程获得了除了处理器之外的一切所需资源。一但得到处理器资源(处理器分配的时间片)即可运行。
  • 运行状态: 进程正在处理器上上运行(单核 CPU 下任意时刻只有一个进程处于运行状态)。
  • **阻塞状态: **又称为等待状态,进程正在等待某一事件而暂停运行如等待某资源为可用或等待 IO 操作完成。即使处理器空闲,该进程也不能运行。
  • 结束状态: 进程正在从系统中消失。可能是进程正常结束或其他原因中断退出运行。

进程的五种状态

  • 创建状态 进程正在被创建,尚未到就绪状态
  • 就绪状态 进程已处于准备运行状态,即进程获得了除了处理器之外的一切所需资源,一旦得到处理器资源(处理器分配的时间片)即可运行。
  • 运行状态 进程正在处理器上上运行
  • 阻塞状态 又称为等待状态,进程正在等待某一事件而暂停运行如等待某资源为可用或等待 IO 操作完成。即使处理器空闲,该进程也不能运行。
  • 结束状态 进程正在从系统中消失。可能是进程正常结束或其他原因中断退出运行。

进程间的通信方式

几种? 大约有七种

  • 管道/匿名管道
  • 有名管道
  • 信号
  • 消息队列
  • 信号量
  • 共享内存
  • 套接字

线程间的同步的方式

线程同步是两个或者多个共享关键资源的线程的并发执行,应该同步线程以避免关键的资源使用冲突,操作系统一般有下面三种线程同步的方式

1.互斥量 采采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制。

2.信号量 它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。、

3.事件 通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。

进程的调度算法

  • 先来先服务
  • 时间片调度
  • 短作业优先
  • 优先级调度
  • 多级反馈队列调度算法

什么是死锁

多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。这种情况称为 死锁

死锁产生的四个必要条件

  • 互斥
  • 非剥夺
  • 占有并等待
  • 循环等待