Operating system 操作系统-进程
这些都是真的吗?为什么? 在UNIX/Linux系统中,子进程继续执行与其父进程相同的程序。 上下文切换比模式切换更昂贵 进程可以直接访问硬盘上的数据,而无需内核参与 任何两个进程都可以使用普通(未命名)管道进行通信 在UNIX/Linux系统中,子进程继续执行与其父进程相同的程序 大多数情况下是这样的,因为Operating system 操作系统-进程,operating-system,Operating System,这些都是真的吗?为什么? 在UNIX/Linux系统中,子进程继续执行与其父进程相同的程序。 上下文切换比模式切换更昂贵 进程可以直接访问硬盘上的数据,而无需内核参与 任何两个进程都可以使用普通(未命名)管道进行通信 在UNIX/Linux系统中,子进程继续执行与其父进程相同的程序 大多数情况下是这样的,因为fork()的工作方式(通常孩子稍后调用exec(),但这只发生在稍后)。但这并不一定总是正确的(例如,您可以使用posix_spawn()来启动进程,或者在C中使用普通的system())
fork()
的工作方式(通常孩子稍后调用exec()
,但这只发生在稍后)。但这并不一定总是正确的(例如,您可以使用posix_spawn()
来启动进程,或者在C中使用普通的system()
)
上下文切换比模式切换更昂贵
信息太少,无法确定这是否属实。例如,“上下文切换”可能意味着从用户空间切换到内核空间,或从“内核上下文”切换到“IRQ上下文”,或。。。同样,“模式开关”可以是任何东西(视频模式开关?权限级别更改?)。我只能说,一些被称为上下文开关的东西比一些被称为模式开关的东西更贵,而一些则更便宜
进程可以直接访问硬盘上的数据,而无需内核参与
大部分都是假的。唯一可能的情况是,如果您扩展“硬盘驱动器”的定义,将NVRAM作为持久存储;但即使在这种情况下,我也不确定Linux是否支持将NVRAM直接映射到用户空间(还没有)
任何两个进程都可以使用普通(未命名)管道进行通信
否。如果您随机选择任意两个流程并希望它们通过进行通信。如果是管道,那么它很可能对任何人都没有任何意义(例如,想象一下,将数字化声音从一个进程发送到一个CRON守护进程,而这个进程并不期待它)。流程必须设计为协调管道端点的创建,并就其角色(即发送方,即接收方)达成一致,并就通过管道传输的数据所使用的协议达成一致(仅仅发送/接收原始字节并不是通信,正如听力与听力/理解不同一样)。过程的上下文在PCB中表示 调用fork()后有两种可能:
- 父级和子级同时执行
- 父级等待直到子级终止