昨天讲完了linux的核心架构,今天就开始让我们认识重要的部分吧。
以下是三个名词,程序(program)、行程(process)、执行序(thread),在作业系统中最常见的解释。
通常是指完成特定任务的有序指令集合,或是一个可执行的文件。也就是由工程师所编写的程序码(code),放在硬碟中,尚未读入记忆体的的code。
是一段执行中的程序,内容已经被移入记忆体,是一个"活生生"的个体,在一个行程里面会有可执行的指令,也包含了行程执行时所需要的活动资讯。
在作业系统中,会用行程控制块(process control block, PCB),记录行程所需要的资讯,常见的有以下几种
作业系统分配记忆体、CPU时间等等资源的基本单元。
上述都是最常见的解释,但是,人生最重要的就是这个BUT,Linux 里面并没有区分行程与执行绪,而是一鱼两吃,用 task_struct
可以代表process 或 thread。
从实作的角度看来
建立user process的方法是有三个系统呼叫: fork, vfork, clone
建立kernel thread的方法有两种系统呼叫: kernel_thread, kthread_create
而以上这些API还有library function最後都会call到 `_do_fork`
而`do_fork`所做的事就是填 `task_struct`,只要填好task_struct就是把该task给创建出来了 !!!
以上的话在现今版本的linux是错的,哪里有问题有待明日分晓!!
day3,遇到中秋连假,又帮母亲的电脑进行系统转移搞得七晚八晚,今天只能滥竽充数了。
前言 今天的题目在这里:764. Largest Plus Sign,是一题medium的题目。我直...
兴趣是学习最好的老师。 大概是去年年底或今年年初开始玩聊天机器人吧,原本是自己做来好玩用的,不过我会...
逻辑运算子 &&(and) 使用方式: expr1 && expr2...
前面完成了「Pros」区块,今天来完成「Steps」的区块。 数据收集 标题的样式 Font-we...
延续昨日 今天我们来处理一下新增帐户的照片 这是我们目前的修改帐户页面 首先先把layout做出来 ...