• 操作系统进程基本概念


      1、首先,什么是进程?

      按照我的理解,进程就是执行中的程序,不是单单指程序代码,而是指执行中的程序这个事件。

      2、其次,进程的状态:

      (1)新的:表示进程刚刚被创建;

      (2)运行:表示进程正在被执行;

      (3)等待:进程等待某个事件的发生;

      (4)就绪:进程等待分配处理器;

      (5)终止:进程完成执行。

      3、进程调度:

      新创建的进程处于就绪队列中,它在就绪队列中可能被CPU执行也可能在等待过程中被派遣,也有可能发生以下几种情况:

      (1)进程可能发出一个I/O请求,并被放到I/O队列中,当I/O口操作完成之后,回到就绪队列继续等待CPU执行。

      (2)进程可能创建一个子进程,并等待其结束;

      (3)进程可能由于中断而强制释放CPU,并被放回到就绪队列。

      值得一提,在第二种情况下,创建子进程的进程称为父进程,父进程也可以和子进程并行执行。

      4、进程操作

      主要是进程创建以及终止。

      (1)进程创建:

      在Unix系统中,使用fork()函数创建进程,每一个创建的进程都有一个唯一的识别符pid来标识进程,pid是整数值,在进程中也可以创建进程:

      当进程创建新进程时,有两种执行可能:

      1)父进程和子进程并行执行;

      2)父进程等待子进程执行完毕。

      新进程的地址空间也有两种可能:

      1)子进程是父进程的复制品;

      2)子进程装入一个新程序。

      调用fork()函数时,子进程的返回值为0,父进程的返回值为子进程的进程标识符(非零)

      (2)进程终止:

      当进程完成执行之后,调用系统调用exit()函数来终止进程。此时,进程可以返回状态值到父进程,所有进程资源都被系统释放。父进程也可以调用系统函数来终止子进程。

      5、进程间通信:

      不仅一台电脑上的进程之间可以通信,不同计算机上的进程也可以通信,实现这种通信有两种方式:

      (1)共享内存,创建一块公共内存,让参与通信的每一个进程都可以访问。

      (2)消息系统,进程间通过发送消息来通信

  • 相关阅读:
    对搜狗浏览器的评价
    领扣(LeetCode)二叉树的所有路径 个人题解
    领扣(LeetCode)单词模式 个人题解
    领扣(LeetCode)最长公共前缀 个人题解
    领扣(LeetCode)设计哈希映射 个人题解
    领扣(LeetCode)寻找旋转排序数组中的最小值 个人题解
    领扣(LeetCode)最长和谐子序列 个人题解
    领扣(LeetCode)删除注释 个人题解
    领扣(LeetCode)检测大写字母 个人题解
    领扣(LeetCode)第三大的数 个人题解
  • 原文地址:https://www.cnblogs.com/PIRATE-JFZHOU/p/8082882.html
Copyright © 2020-2023  润新知