[Linux系统编程] 学习大纲

汇总

Linux系统编程学习大纲

1. 多进程编程
  • 进程创建与管理
    • fork()vfork()clone()
    • exec*() 系列函数
    • wait()waitpid()
  • 进程属性
    • 进程ID (getpid()getppid())
    • 进程组 (setpgid()getpgid())
    • 会话 (setsid()getsid())
2. 进程间通信(IPC)
  • 管道(Pipe)
    • 无名管道 (pipe())
    • 命名管道 (mkfifo())
  • 消息队列
    • 创建和删除消息队列 (msgget()msgctl())
    • 发送和接收消息 (msgsnd()msgrcv())
  • 共享内存
    • 创建和销毁共享内存段 (shmget()shmdt()shmctl())
    • 附着和分离共享内存 (shmat()shmdt())
  • 信号量
    • 创建和销毁信号量集 (semget()semctl())
    • 操作信号量 (semop())
3. 信号处理
  • 信号基础知识
    • 信号类型
    • 信号默认行为
  • 信号处理函数
    • signal()sigaction()
  • 信号集
    • sigemptyset()sigfillset()sigaddset()sigdelset()sigsuspend()
4. 特殊进程
  • 孤儿进程与僵尸进程
  • 守护进程
    • 创建守护进程 (daemon())
    • 设置工作目录和文件权限掩码
  • 精灵进程
    • 进程生命周期
    • 精灵进程的作用
5. 多线程编程
  • 线程基础
    • 线程的概念
    • 线程属性
  • POSIX线程(pthreads)
    • 创建线程 (pthread_create())
    • 线程同步 (pthread_mutex_tpthread_cond_t)
    • 线程取消 (pthread_cancel())
    • 线程属性 (pthread_attr_t)
6. 线程池
  • 线程池设计
    • 线程池的创建与销毁
    • 任务队列
  • 线程池API
    • 分配任务 (pthreadpool_submit())
    • 线程池等待 (pthreadpool_wait())
7. 实践项目
  • 实现一个简单的客户端-服务器模型
    • 使用管道、消息队列或共享内存进行通信
  • 守护进程编程
    • 创建一个后台运行的服务
  • 线程池实现
    • 设计并实现一个简单的线程池
  • 并发文件系统操作
    • 使用多线程或多进程实现并发文件读写
8. 参考资料和资源

一、多进程 

 多进程编程学习大纲

  1. 进程基础

    • 进程的概念
    • 进程的状态(就绪、运行、阻塞)
    • 进程的生命周期
    • 进程ID (PID) 和父进程ID (PPID)
  2. 进程创建

    • fork() 函数
    • vfork() 函数
    • clone() 函数
    • 创建子进程的注意事项
  3. 进程控制

    • 进程执行 (exec*() 系列函数)
    • 进程等待 (wait()waitpid())
    • 进程终止 (exit()_exit()abort())
  4. 进程间通信(IPC)

    • 管道
      • 无名管道 (pipe())
      • 命名管道 (mkfifo())
    • 消息队列
      • 创建 (msgget())
      • 操作 (msgsnd()msgrcv())
    • 共享内存
      • 创建 (shmget())
      • 附着 (shmat())
      • 操作共享内存区域
    • 信号量
      • 创建 (semget())
      • 操作 (semop()
    • 套接字
  5. 信号处理

    • 信号基础
    • 信号处理函数 (signal()sigaction())
    • 信号集操作 (sigemptyset()sigfillset()sigaddset()sigdelset()sigsuspend())
  6. 特殊进程

    • 孤儿进程
    • 僵尸进程
    • 守护进程 (daemon())
  7. 案例分析与实践

    • 编写一个简单的父子进程通信程序
    • 实现一个简单的消息队列服务
    • 创建和管理守护进程
  1. 并发与并行

    • 并发与并行的概念
    • 并发与并行的区别
    • 并发编程的优点与挑战
    • 并行编程的优点与挑战
  2. 同步机制

    • 锁(Mutexes)
    • 信号量
    • 条件变量
    • 互斥量
    • 读写锁
  3. 死锁与饥饿

    • 死锁的概念与预防
    • 饥饿的概念与预防
    • 死锁的四个必要条件
    • 死锁检测与恢复

 

多进程学习资料: 

  1. Linux下的多进程编程 - RunningSnail - 博客园 (cnblogs.com)
  2. 多进程和多线程的概念 - fengMisaka - 博客园 (cnblogs.com)
  3. 彻底理解 进程、线程、多进程、多线程-阿里云开发者社区 (aliyun.com)
  4. java - 图文并茂-带你搞懂多线程和多进程 - 个人文章 - SegmentFault 思否
  5. 多进程和多线程区别以及优缺点[通俗易懂]-腾讯云开发者社区-腾讯云 (tencent.com)
  6. 并发与并行的区别-CSDN博客
  7. linux进程(一)——什么是进程?-CSDN博客
  8. Linux:进程概念(三.详解进程:进程状态、优先级、进程切换与调度)-腾讯云开发者社区-腾讯云 (tencent.com)

并发,并行,同步,死锁,饥饿,竞争条件,进程间通信,守护进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值