zoukankan      html  css  js  c++  java
  • 进程理论 阻塞非阻塞 同步异步 I/O操作

    1.什么是进程

    进程指的是一个正在运行的程序,进程是用来描述程序执行过程的虚拟概念

    进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的

    2.操作系统

    操作系统是一个协调/管理/控制计算机硬件资源与应用软件资源的一段控制程序

    有两大功能:

    1.将复杂的硬件操作封装成简单的接口给应用程序或用户去使用

    2.将多个进程对硬件的竞争变得有序

    并发:多个任务看起来是同时运行的

    串行:一个任务完完整整地运行完毕,才能运行下一个任务

    多道技术:多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题。解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。

    1.空间上的复用:多个任务复用内存空间

    2.时间上的复用:多个任务复用cpu时间

    一个任务占用cpu时间过长会被操作系统强行夺走cpu执行权限:比起串行执行反而降低效率

    一个任务遇到io操作也会被操作系统强行剥夺走cpu的执行权限:比起串行执行可以提升效率

    3.同步/异步和阻塞/非阻塞

    同步:执行一个操作后,要等待结果,然后才能继续执行后续的操作

    异步:执行一个操作后,可以取执行其他的操作,然后等待通知再回来执行刚才没执行完的操作

    阻塞:线程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的操作。

    非阻塞:线程给CPU传达任务后,继续处理后续的操作,隔段时间再来询问之前的操作是否完成。其实这样的过程也要轮询。

     4.I/O操作

    I/O:input和output即输入和输出

    由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。

    比如打开浏览器,访问新浪首页,浏览器这个程序就需要通过网络IO获取新浪的网页。浏览器首先会发送数据给新浪服务器,告诉它我想要首页的HTML,这个动作是往外发数据,叫output,随后新浪服务器把网页发过来,这个动作是从外面接收数据,叫input。所以,通常,程序完成IO操作会有input和output两个数据流。当然也有只用一个的情况,比如,从磁盘读取文件到内存,就只有input操作,反过来,把数据写到磁盘文件里,就只是一个output操作。

    CPU遇到IO操作时是会切走的。

    世界最优美的情书
  • 相关阅读:
    html常用标签及示例
    判断一个数是否是素数的讨论
    图像的空间域变化
    图像增强的点运算(一)
    字符串匹配——KMP
    AcWing1134最短路计数(spfa)
    AcWing1137拯救大兵瑞恩(双端队列搜索,状态压缩,分层图最短路)
    AcWing1175电路维修(双端队列+搜索)
    AcWing1137选择最佳线路(最短路)
    AcWing342道路与航线(dijkstra+拓扑排序)
  • 原文地址:https://www.cnblogs.com/xufengnian/p/10567942.html
Copyright © 2011-2022 走看看