(3)计算机基础知识

计算机基础知识

本文主要讲解操作系统知识



一、进程与线程、程序区别与联系?

基本概念

  • 进程是资源(CPU,内存等)分配的的基本单位,程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列;
  • 线程是程序执行时的最小单位,是CPU调度的基本单位
  • 程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行

为什么会有进程与线程的概念呢?

  • 大家都知道,CPU的工作就是取指——执行,我们要想管理CPU,就要使用CPU。而更好的管理CPU就是让多个程序并发执行,那如果多个程序之间进行来回切换时,我们是不是要记录切换之前程序执行的状态,因此为了更好的完成切换,就要存储执行的程序,这里就有了 PCB的概念,PCB用来存放每个程序的信息结构。就此,提出进程,进程就是执行中的程序。

程序与进程的区别

  • 进程是动态的,而程序是静态的
  • 进程进程相对于程序的生命周期是短暂的,有开始有结束,程序是永久的
  • 一个进程只能对应一个程序,一个程序可以对应多个进程
  • 进程会走走停停,走停对程序无意义

线程的提出

  • 进程=资源+指令执行序列,进程之间进行切换时,资源也会跟着切换,这样代价就会很大。既然进程是由资源与指令执行序列组成的,是否可以实现资源不动,只切换执行序列呢??当然可以,可以利用线程,此时线程就提出来了。比如你点开一个网页浏览器(进程),网页上会呈现图片,文字等信息,那背后是如何工作的呢,实际上是多个线程来回切换工作的,比如第一个线程先从服务器接受一些文本、图片等数据,然后第二个线程就开始将接受的文本显示出来,第三个线程就会处理刚才接受的图片(如压缩),第四个线程就会把刚才处理的图片显示出来。

进程和线程的区别

  • 进程拥有独立的内存,而线程没有独立的资源空间, 只是暂时存储在计数器,寄存器,栈中,同一个进程间的线程可以共享资源
  • 同一个进程下,一个线程的挂掉,会导致整个进程的挂掉,而进程之间不会相互影响
  • 进程有进程控制表PCB,系统通过PCB对进程进行调度;线程有线程的控制表TCB。但是,TCB所表示的状态比PCB要少多的。
  • 一个进程可以包含至少一个线程,一个线程只属于一个进程

二、内核级线程与用户级线程

  • 用户级线程:通过用户主动进行切换,不用内核帮助。用户级线程是可以独立于操作系统的。
    线程一先执行A,执行到B,跳转到B并将A的下一条指令的压栈,Yield切换到线程二的C,同时将下一条指令压栈。到了线程二在C里面又跳转到D并压栈,D里面又切换线程,压栈,同时将B压入的栈弹出,执行B。B执行完又弹栈,跳到A里面执行…(一个线程对应一个独自的栈)

  • 内核级线程:核心级线程需要在用户态和核心态里面跑,在用户态里跑需要一个用户栈,在核心态里面跑需要一个核心栈。用户栈和核心栈合起来称为一套栈,这就是核心级线程与用户级线程一个很重要的区别,从一个栈变成了一套栈。

  • 用户级线程用TCB切换栈的时候是在一个栈与另外一个栈之间切换,核心级线程就是在一套栈与另外一套栈之间的切换(核心级线程切换),核心级线程的TCB应该是在内核态里面。

三、虚拟内存

  • 程序在装入部分后即可开始运行,另外一部分放在外存,当需要访问的时候才将其添加到内存空间中。这部分工作由操作系统来完成,将需要的加入到内存中,不需要的暂时放回到外存中。这样系统就为用户提供了一个看似比实际内存空间大得多的存储器,这就是 虚拟存储器的概念。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

总结

操作系统知识还需要扩充,还需更进一步说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值