栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

嵌入式Linux C多进程编程(三)——进程调度和进程的创建(fork)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式Linux C多进程编程(三)——进程调度和进程的创建(fork)

文章目录
  • 一、进程状态
    • 1.1 基本三态
    • 1.2 进程调度策略(抢占式和非抢占式)
    • 1.3 进程状态
    • 1.4 进程状态的切换
    • 1.5 进程状态的查看
  • 二、操作系统的核心
  • 三、进程调度器
    • 3.1 进程分类
    • 3.2 Linux调度策略
    • 3.3 进程优先级
  • 四、进程同步
  • 五、进程的创建

进程调度
查看进程的命令
ps top htop

一、进程状态 1.1 基本三态

基本三态:就绪态、执行态、等待态

第一种是进程因为等待输入而阻塞
第二种是调度程序选择另一个进程
第三种是调度程序选择一个进程开始运行
第四种是出现有效的输入

1.2 进程调度策略(抢占式和非抢占式)
  1. 先创建先执行
  2. 高优先级优先
  3. 短进程优先
  4. 时间片轮转
1.3 进程状态

1.4 进程状态的切换

1.5 进程状态的查看

二、操作系统的核心

操作系统的核心就是任务(进程)管理

三、进程调度器 3.1 进程分类


3.2 Linux调度策略


了解有这几个算法就行,如CFS,RT,DL

3.3 进程优先级

四、进程同步
  • 临界资源操作系统中将一次只允许一个进程访问的资源称为临界资源,需要互斥访问
  • 信号量实现互斥访问
    进程是并发执行的,不同进程之间存在着不同的相互制约关系。所谓进程同步(线程同步同理),主要是解决临界资源互斥访问的问题。如多个进程访问同一片共享存,这片共享内存必须互斥使用。
五、进程的创建

fork调用一次,返回两次,可能有三个返回值

#include 
#include 
#include 
#include 

int main(int argc, char const *argv[])
{
    pid_t pid;

    pid = fork();

    if (pid < 0)
    {
        perror("fork errorn");
        exit(1);
    }

    if (pid > 0)
    {
        printf("parentn");
    }
    else if(pid == 0)
    {
        printf("childn");
    }
    
   
    return 0;
}


写时复制


如果创建的子进程和父进程相同时,则公用一段空间
如果不同时,则重新开辟

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号