编程语言
首页 > 编程语言> > 并发编程-前提了解

并发编程-前提了解

作者:互联网

一.程序和进程的区别

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