进程线程,上下文切换

//线程与进程:

    //进程:每一个正在执行的程序都是一个进程,系统会为每个进程分配内存空间,进程会在程序启动时产生,在程序运行时存在,程序关闭时消亡;(进程更加强调内存的分配)
    //单进程:同一时间只能执行一个指令;
    // 多进程:通过时间片轮转交替的执行不同的指令,达到多进程的样子。(单个cpu下这样处理),如果一个进程有多个任务怎么做呢?
    //比如同时下载多个软件的安装包,第一种方式,我们打开应用商店这种进程,不同的下载任务使用串行的方式来下载软件;第二种方法,我们为每个任务划分为单独的进程,
    //不同的进程之间划分对应的内存空间来实现;
    //分配任务为多个进程的这种方式可能需要解决一些问题:比如不同进程直接可能需要进程间的通信来告诉其他进程我的任务已经完成;如果有病毒入侵,那么安全性存在问题;



    //线程:线程是由进程创建的,是负责具体干活的人,一个进程可能有多个线程。系统不会给线程单独的分配内存空间,线程共享进程的内存空间。线程会共享计算资源。
    //存在了线程的概念,那么进程之间的隔离性就更好,一个进程就不能修改另一个进程,带来更好的安全性;

    //目前一个进程往往会有一个主线程,当有其他的任务需要执行时会创建额外的线程,线程的个数不是随意增加的,线程的运行需要大量的代价。

    //上下文切换:及线程之间的切换是由系统内核来调度的,时间片的执行时怎样来衔接的。
    //一个线程不能之间负责其他线程之间的调度问题,而是需要系统内核来统一管理。那么就意味着,线程需要在用户态与内核态之间来回的切换。
    //另一个问题就是当前的线程执行的程度(上下文的切换,现场的保存与恢复)和下次执行的时候相衔接。
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务