【python-100】【操作系统】13.进程和线程

〇、前言最近学到13.进程和线程.md,重拾了操作系统的一些知识,再来回顾一下,顺便把当时这块的复习例题放上来。一、进程控制和线程进程和程序的区别进程是动态的,程序是静态的进程是暂时的,程序是永久的进程和程序的组成不同进程和程序密切相关进程三个基本状态的转换及原因(1)就绪状态(R????????????????????????eady)(2)执行状态(Ru????????????????????nning)(3)阻塞状态(Blocke...
摘要由CSDN通过智能技术生成

〇、前言

最近学到13.进程和线程.md,重拾了操作系统的一些知识,再来回顾一下,顺便把当时这块的复习例题放上来。

一、进程控制和线程

进程和程序的区别
  1. 进程是动态的,程序是静态的
  2. 进程是暂时的,程序是永久的
  3. 进程和程序的组成不同
  4. 进程和程序密切相关
进程三个基本状态的转换及原因

(1)就绪状态(Ready)
(2)执行状态(Running)
(3)阻塞状态(Blocked􏰆􏰃􏰂􏰇􏰲􏰱)在这里插入图片描述

进程实体,进程的唯一标识:PCB

进程是进程实体的运行过程,是系统进行资源分配和调度的独立单位。 进程的结构描述:程序、数据、PCB(进程控制块:进程存在的唯一标识)、栈。
PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道 程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并 发执行的进程。OS 是根据 PCB 对并发执行的进程进行控制和管理的。

  1. 进程控制块的结构:进程标识符、cp􏰂􏰀u 现场保护区、进程调度信息、进程控制信息
  2. 进程控制块的组织方式:
    (1)链接方式:将同状态进程的 PCB 链接成一个队列
    (2)索引方式:将同状态进程的 PCB 放入索引表
三对原语:原子性

原语:由若干条机器指令构成的一段程序,用以完成特定功能,这段程序在执行期间不可 分割。即原语的执行不能被中断,原语操作具有原子性。

  1. 进程的创建和终止原语:创建原语create() ;终止原语
  2. 进程的阻塞和唤醒原语:阻塞原语block();唤醒原语wakeup()
  3. 进程的挂起与激活:进程挂起原语suspend();进程激活原语active()
线程和进程的区别
  1. 拥有资源:进程拥有资源
  2. 调度:线程是调度单位
  3. 并发性:线程可并发执行
  4. 系统开􏰷:引入线程后,系统开􏰷小

二、Python中的多进程

Unix和Linux操作系统上提供了fork()系统调用来创建进程,调用fork()函数的是父进程,创建出的是子进程,子进程是父进程的一个拷贝,但是子进程拥有自己的PID。fork()函数非常特殊它会返回两次,父进程中可以通过fork()函数的返回值得到子进程的PID,而子进程中的返回值永远都是0。Python的os模块提供了fork()函数。由于Windows系统没有fork()调用,因此要实现跨平台的多进程编程,可以使用multiprocessing模块的Process类来创建子进程,而且该模块还提供了更高级的封装,例如批量启动进程的进程池(Pool)、用于进程间通信的队列(Queue)和管道(Pipe)等。

模拟两个任务同时启动
from multiprocessing import Process
from os import getpid
from random import randint
from time import time, sleep


def download_task(filename):
    print('启动下载进程,进程号[%d].' % getpid())
    print('开始下载%s...' % filename)
    time_to_download = randint(5, 10)
    sleep(time_to_download)
    print('%s下载完成! 耗费了%d秒' % (filename, time_to_download))


def main():
    start = time()
    p1 = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值