# linux启动流程

通电-->bios-->加载引导记录 grub之类的-->加载操作系统-->加载/boot-->创建init进程(pid=1)-->选择运行级别(/etc/rc.d)-->加载开机程序(/etc/init.d)

# linux文件描述符

linux文件描述符简单的说法就是 一个进程要执行对某个文件的io操作 都通过文件描述符来操作 类似windows中的文件句柄
默认情况下 有 0(stdin) 1(stdout) 2(stderr)
一般通过ulimit 来查看操作设置默认的文件操作符属性
因为linux 所有的东西都是文件 那么socket也是个文件 在常规web服务器性能调优中 合理设置最大文件描述符数量 可以优化web服务器性能

# 进程间通信的方式

参考资料: https://baike.baidu.com/item/%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1/1235923?fr=aladdin https://www.cnblogs.com/lmh001/p/9754122.html 总结

管道 信号量 共享内存 套接字 消息队列 大概是这五种
管道分无名 有名 高级

一般java开发很少用到进程之间通信 顶多就是在一些框架底层 线程操作中用到类似的概念 例如信号量和共享内存 消息队列

  • 哪些通信方式是要陷入内核态的
    在进程之间通信 都是需要借助内核来处理 这个问题不太明白
    因为在操作系统中 进程通信肯定要进入 内核态来处理的 在线程通信好像不太需要 如线程共享内存
最后更新时间: 2023-08-29 02:29:27