计算机操作系统概述、进行与线程-Java基础

互斥共享和同时共享

  互斥共享的资源也就是临界资源,例如打印机。

虚拟技术:时分复用技术和空分复用技术

  多个线程时分复用,就是每个进程轮流占用处理器,每次执行一个小时间片,然后快速切换。

  空分复用,是将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,并不需要全部在物理内存中。

  异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

进程与线程

  1. 进程是资源分配的基本单位,进程控制块描述进程的基本信息和运行状态,例如创建进程和撤销进程。
  2. 线程是独立调度的基本单位,一个进程中可以有多个线程,他们共享进程的资源。
  3. 区别:1)拥有资源,进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。2)调度,线程是独立的调度单位,在同一个进程中,线程的切换不会导致进程的切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程的切换。3)系统开销,创建和撤销进程,系统都要为之分配或回收资源,如内存空间、I/O设备等,所付出的开销远大于创建或撤销的开销。而在进行进程切换时,设计当前执行进程CPU环境的保存及新调度进程CPU环境的设置,而线程切换时只需要保存和设置少量寄存器内容,开销较小。4)通信方面,线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助IPC。
  4. 1)进程状态中,只有就绪和运行态可以相互转换,其他都是单向的。

         2)阻塞状态是缺少需要的资源从而由运行转换而来,但是该资源不包括CPU时间,缺少CPU时间会从运行态转换为就绪态。

进程调度算法

1、批处理系统:

    先来先服务FCFS,按照请求的顺序调度,利于长作业不利于短作业。

    短作业优先SJF,按照运行时间最短的顺序进行调度。长作业可能会饿死。

    最短剩余时间优先SRTN,按照运行时间的顺序进行调度,如果新的进程需要的时间更少,则挂起当前进程,运行新的进程,否则新进程等待。

2、交互式系统:交互式系统有大量的用户交互操作,调度算法的目标就是快速进行响应

     时间片轮转,设置一个计时器的时钟,进程按FCFS调度,每次调度把cpu时间分给第一个进程,当时间片用完,时钟中断,调度停止并送到队尾。同时cpu继续分给队首。时间片轮转算法的效率和时间片的大小有很大关系,太小会导致进程切换太频繁,切换花费时间太多。时间片太长,实时性不能保证。

     优先级调度,按照优先级进行调度。为防止低优先级的进程永远调度不到,可以随着时间推移增加等待进程的优先级。

     多级反馈调度,为需要连续执行多个时间片的进程考虑,设置了多个队列,每个队列时间片大小不同。

      实时系统:实时系统要求一个确定的时间内得到响应。分为硬实时和软实时,前者必须满足绝对的截止时间,后者可以容忍一定的超时。

接下来是进程同步。。。。待续

扫码关注一起随时随地学习!!!就在洋葱攻城狮,更多精彩,等你来!!

你可能感兴趣的:(java)