zoukankan      html  css  js  c++  java
  • 操作系统与进程

    操作系统与进程

    操作系统知识:

    • 作用:

      1. 控制软硬资源
      2. 调度进程,使进程有序
    • 多道技术

      1. 产生背景

        针对单核,实现宏观上并发

      2. 什么是多道?

        内存中存放多个程序

      3. 宏观/微观

        1. 宏观上并行:多个程序在同时运行
        2. 微观上串行:实际上多道程序轮流使用cpu
      4. 时空上的复用

        1. 时间上复用:切换+保存状态

          遇到io操作切换、占用cpu时间长切换

          切换时保存状态,下次运行时接着上次的状态继续运行

        2. 空间上复用:

          内存中同时存放多个程序

          使用同一套硬件资源

    进程知识:

    • 什么是进程?

      1. 是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础,进程是线程的容器

      2. 狭义、广义:

        狭义定义:是正在运行的程序的实例(an instance of a computer program that is being executed)

        广义定义:是一个具有独立功能的程序关于某个数据集合的一次运行活动

      3. 理论角度、实现角度

        理论角度:是对正在运行的程序过程的一种抽象

        实现角度:是一种数据结构,刻画动态系统内部规律

      4. 进程的本质

        本质是程序在多道程序系统中一次执行过程。

    • 进程特征?

      1. 动态性:动态创建动态消亡
      2. 并发性:可同其他进程一起并发执行
      3. 独立性:是一个能独立运行的基本单位
      4. 异步性:进程按各自独立的速度往前执行。
      5. 结构特征:数据、程序、进程控制块三部分组成。
    • 进程与程序的区别

      程序:数据和指令的集合,静态,永久,作为文件资料长期存在

      进程:程序在处理机上的一次执行过程,动态,短暂,有一定生命周期

      注意:同个程序运行两次,就会产生两个进程。

    • 进程的调度算法

      1. 先来先服务(FCFS):有利于长作业(进程),不利于短作业(进程)
      2. 短作业优先:短进程优先调度,不利于长作业
      3. 时间片轮转:将cup处理时间分成固定大小时间片,进程用完时间片时还没执行完,就排到末尾等待下一次调度。
      4. 多级反馈队列:设置多个队列,赋予不同优先级。
        1. 新进程进入内存,放入第一队列,按FCFS调度。
        2. 不能在分配的时间片内完成,降入第二队列,继续按FCFS调度。
        3. 依次降级时,按时间片轮转运行。
    • 进程调度:时间片轮转法+多级反馈队列

    • 进程的并发与并行

      并发:看起来像同时运行

      并行:真正意义上的同时运行

      单核计算机不能实现并行,但可以实现并发。

    • 进程的三种状态

      就绪:进程分配到处cpu之外的所有资源

      运行:进程获得处理机。执行完一个时间片进程还未运行完,变成就绪态。

      阻塞:等待某个事件发生,放弃处理机。I/O操作,等待信号,申请缓冲区等。

    • 同步、异步、阻塞、非阻塞

      同步、异步: 针对任务的提交方式

      ​ 同步:一个任务依赖另一个任务,只有等待被依赖的任务完成,该任务才能算完成,可靠。

      ​ 异步:不需要等待被依赖的任务完成,任务也可以完成,不可靠。

      阻塞、非阻塞:针对程序运行状态

      ​ 阻塞:程序的阻塞态

      ​ 非阻塞:程序处于就绪、运行态

    • 进程的两种创建方式

      ​ 直接使用Process的实例

      ​ 继承Process,重写run方法

    • 僵尸进程、孤儿进程

      ​ 僵尸进程:任何进程都会变成僵尸进程

      ​ 孤儿进程:父类进程意外死亡

    • 守护进程

      ​ p.daemon = True ,必须在start之前创建

      ​ 会在主进程运行结束之后结束

      ​ 不发创建子进程

    • 互斥锁

      acquire() 抢锁

      release() 释放锁

  • 相关阅读:
    rest_framework学习之路
    jQuery操作cookie
    Cookie和Session
    HTTP之Content-Type
    HTTP协议
    Python之random模块
    HTML5(FileRdeader)
    Python之re模块
    LINQ基础 之 LINQ TO SQL (二)
    LINQ基础(一)
  • 原文地址:https://www.cnblogs.com/KbMan/p/11340079.html
Copyright © 2011-2022 走看看