ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

并发编程-前提了解

2019-10-03 22:03:13  阅读:240  来源: 互联网

标签:操作系统 编程 CPU 并发 前提 IO 进程 cpu 多道


一.程序和进程的区别

1.程序

一堆静态的代码文件

2.进程

一个正在运行的程序进程,抽象的概念(起源于操作系统)

3.进程被谁运行

由操作系统操控调用,交予CPU运行

 

二.操作系统

操作系统在计算机中的位置

 

1.什么是操作系统

操作系统就是一个协调、管理和控制计算机硬件和软件资源的控制程序。

2.操作系统的作用

1.将一些对计算机硬件的复杂丑陋的操作变成简单美丽的接口

2.将多个进程对CPU资源的抢占变得合理有序。

3.多道技术

多道技术中的多道指的是多个程序。多道技术的产生背景是为了解决多个程序竞争同一个资源(比如CPU)的有序调度问题,解决方式即多路复用(1.时间上的复用 2.空间上的复用)

1.空间上的复用

将内存中分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。(内存隔离)

2.时间上的复用

实现CPU在多个进程之间来回切换,并且保留状态。

提升效率,最大限度使用CPU

如果是一个IO密集型进程,来回切换提升效率(在IO阻塞时自动切换)

如果是一个计算密集型,来回切换降低效率

三.进程的理论

1 2 3 4 5 6 7 8 9 1.串行:所有任务一个一个完成 2.并发:一个cpu完成多个人为,看起来像是同时完成 3.并行:多个cpu执行多个任务,真正的同时完成 4.阻塞:cpu遇到io就是阻塞 5.非阻塞:没有io,就叫非阻塞 6.进程创建:一个子进程必须依赖于一个主进程才能开启     unix:fork一个子进程会完全复制一个主进程的所有资源,初始资源不变     windows:操作系统调用CreateProcess创建进程。创建一个子进程,会复制主进程所有的资源,但是会改变一些资源 7.cpu:cpu是用来做计算,cpu是无法执行IO操作的,一旦遇到io操作,应该让cpu去执行别的任务

  

进程的状态

程序遇到IO操作(Input、output),会阻塞,IO完成会进入就绪状态,此时等待cpu执行。正在执行的程序时间片完(cpu切到其他程序执行),会进入就绪状态。

 

 四.并发与并行

无论是并发还是并行,在用户看来都是"同时"运行的,不管是进程还是线程,都只是一个任务而已,真正干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务

1.并发

伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发

2.并行

同时运行,只有具备多个cpu才能实现并行

单核下,可以利用多道技术,多核,每个核也都可以利用多道技术(多道技术是针对单核而言的)

标签:操作系统,编程,CPU,并发,前提,IO,进程,cpu,多道
来源: https://www.cnblogs.com/luckinlee/p/11620897.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有