思考 - 操作系统

关于线程 / 进程的思考

【分时操作系统】

每个进程都有一个【时间片】

  • 先来先服务

  • 最短作业调度

  • 优先级调度

  • 时间片轮转调度

【时间片】怎么分?

内存和CPU不是一个概念

独立的资源和地址空间

进程的资源:

内存资源

文件资源

设备资源

进程控制块:进程标识信息、处理机状态信息、进程调度信息、进程控制信息、、、、进程通信

信号量:保证一个进程访问临界资源

进程通信:

管道,信号,消息队列,共享内存,信号量,套接字

线程 / 进程 ----> CPU / 磁盘存储 ---> 进程通信 ---> 进程调度算法 ---

线程和进程

线程切换之前,要保留当前线程的运行环境;线程切换回来之后继续运行。

那么进程切换呢?

  • 【进程优先级】

  • 【PCB】进程控制块

  • 防止进程非法访问其他进程的内存?

  • 进程切换,切换的是什么资源? 进程切换是人为的吗? IO操作会阻塞进程吗?

    • 为什么进程切换开销就大呢?进程切换为什么开销就大呢?

      • 是不是说,进程切换,要把内存中的数据写回到磁盘中呢?

      • 进程切换,是不是说,就是【关闭 / 开启】的切换 ?

  • 为什么会有上下文切换?

    • CPU运行,CPU任务调度问题。

    • CPU是单核的,单核,处理多个任务,就会出现上下文切换。

      • 时间分片,

      • 获得时间片的任务能执行?

      • 资源是有限的,某一时刻,不可能只有一个任务执行

      • 任务调度算法

      • 调用【内核线程】

      • 线程数是无限的,但是线程数越多,上下文切换的越频繁。

        • 操作系统是如何创建线程的呢?

    • 为什么会出现上下文切换?

    • 什么是单核?为什么这样设计?没有上下文切换不行吗?CPU的算力是不是很强,一个普通的任务,是不是可以在很短的时间内完成计算,那么分片的话,任务的等待时间是不是,就会缩短。

  • 线程是没有资源的进程

  • 进程是资源的总称

    • 线程是CPU调度的基本单位,线程和CPU有关

    • 一个进程中可以有多个线程

    • 线程是CPU调度的基本单位,那么还有进程干嘛?

    • 进程是管理这些线程的吗?

      • 进程是分配资源的吗?

      • 进程和资源,将资源加载到内存中。在内存中进行CPU的调度。

      • 进程是不是说指定了【存储位置】呢?

        • 而线程是和在内存上的操作有关的。

    • 那么为什么说线程是没有资源的进程呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值