当前位置: 首页 > news >正文

哈尔滨开发网站重庆百度推广电话

哈尔滨开发网站,重庆百度推广电话,百度网站验证是,零基础学网站建设Linux 操作系统中就是创建进程。创建进程的系统调用叫fork。在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程(Parent Process),新的进程叫作子进程(C…

 Linux 操作系统中就是创建进程。创建进程的系统调用叫fork。在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程(Parent Process),新的进程叫作子进程(Child Process)。

当父进程调用 fork 创建进程的时候,子进程将各个子系统为父进程创建的数据结构也全部拷贝了一份,甚至连程序代码也是拷贝过来的。按理说,如果不进行特殊的处理,父进程和子进程都按相同的程序代码进行下去,这样就没有意义了。

对于 fork 系统调用的返回值,如果当前进程是子进程,就返回 0;如果当前进程是父进程,就返回子进程的进程号。这样首先在返回值这里就有了一个区分,然后通过 if-else 语句判断,如果是父进程,还接着做原来应该做的事情;如果是子进程,需要请求另一个系统调用execve来执行另一个程序,这个时候,子进程和父进程就彻底分道扬镳了,也就产生了一个分支(fork)了。

有个系统调用waitpid,父进程可以调用它,将子进程的进程号作为参数传给它,这样父进程就知道子进程运行完了没有,成功与否。

在操作系统中,每个进程都有自己的内存,互相之间不干扰,有独立的进程内存空间。

对于进程的内存空间来讲,放程序代码的这部分,我们称为代码段(Code Segment)。

对于进程的内存空间来讲,放进程运行中产生数据的这部分,我们称为数据段(Data Segment)。其中局部变量的部分,在当前函数执行的时候起作用,当进入另一个函数时,这个变量就释放了;也有动态分配的,会较长时间保存,指明才销毁的,这部分称为堆(Heap)。

进程自己不用的部分就不用管,只有进程要去使用部分内存的时候,才会使用内存管理的系统调用来登记,说自己马上就要用了,希望分配一部分内存给它,但是这还不代表真的就对应到了物理内存。只有真的写入数据的时候,发现没有对应物理内存,才会触发一个中断,现分配物理内存。

当分配的内存数量比较小的时候,使用 brk,会和原来的堆的数据连在一起,这就像多分配两三个工位,在原来的区域旁边搬两把椅子就行了。当分配的内存数量比较大的时候,使用 mmap,会重新划分一块区域,也就是说,当办公空间需要太多的时候,索性来个一整块。

对于文件的操作,下面这六个系统调用是最重要的:

  • 对于已经有的文件,可以使用open打开这个文件,close关闭这个文件;
  • 对于没有的文件,可以使用creat创建文件;
  • 打开文件以后,可以使用lseek跳到文件的某个位置;
  • 可以对文件的内容进行读写,读的系统调用是read,写是write。

Linux 里有一个特点,那就是一切皆文件。

  • 启动一个进程,需要一个程序文件,这是一个二进制文件。
  • 启动的时候,要加载一些配置文件,例如 yml、properties 等,这是文本文件;启动之后会打印一些日志,如果写到硬盘上,也是文本文件。
  • 但是如果我想把日志打印到交互控制台上,在命令行上唰唰地打印出来,这其实也是一个文件,是标准输出 stdout 文件。
  • 这个进程的输出可以作为另一个进程的输入,这种方式称为管道,管道也是一个文件。
  • 进程可以通过网络和其他进程进行通信,建立的 Socket,也是一个文件。
  • 进程需要访问外部设备,设备也是一个文件。
  • 文件都被存储在文件夹里面,其实文件夹也是一个文件。
  • 进程运行起来,要想看到进程运行的情况,会在 /proc 下面有对应的进程号,还是一系列文件。

每个文件,Linux 都会分配一个文件描述符(File Descriptor),这是一个整数。有了这个文件描述符,我们就可以使用系统调用,查看或者干预进程运行的方方面面。

对于一些不严重的信号,可以忽略,该干啥干啥,但是像 SIGKILL(用于终止一个进程的信号)和 SIGSTOP(用于中止一个进程的信号)是不能忽略的,可以执行对于该信号的默认动作。每种信号都定义了默认的动作,例如硬件故障,默认终止;也可以提供信号处理函数,可以通过sigaction系统调用,注册一个信号处理函数。

Glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库。Glibc 为程序员提供丰富的 API,除了例如字符串处理、数学运算等用户态服务之外,最重要的是封装了操作系统提供的系统服务,即系统调用的封装。

每个特定的系统调用对应了至少一个 Glibc 封装的库函数,比如说,系统提供的打开文件系统调用 sys_open 对应的是 Glibc 中的 open 函数。

有时候,Glibc 一个单独的 API 可能调用多个系统调用,比如说,Glibc 提供的 printf 函数就会调用如 sys_open、sys_mmap、sys_write、sys_close 等等系统调用。

也有时候,多个 API 也可能只对应同一个系统调用,如 Glibc 下实现的 malloc、calloc、free 等函数用来分配和释放内存,都利用了内核的 sys_brk 的系统调用。

此文章为10月Day17学习笔记,内容来源于极客时间《趣谈Linux操作系统》,推荐该课程。


文章转载自:
http://dinncoobscurantist.knnc.cn
http://dinncocarshalton.knnc.cn
http://dinncoresistive.knnc.cn
http://dinncobastinade.knnc.cn
http://dinncotorbernite.knnc.cn
http://dinncoscabland.knnc.cn
http://dinncomsph.knnc.cn
http://dinncowhereabouts.knnc.cn
http://dinncofungous.knnc.cn
http://dinncophysically.knnc.cn
http://dinncocornel.knnc.cn
http://dinncowoolwork.knnc.cn
http://dinncoxanthoprotein.knnc.cn
http://dinncosetose.knnc.cn
http://dinncojumpmaster.knnc.cn
http://dinncoteleordering.knnc.cn
http://dinncorotatable.knnc.cn
http://dinncomade.knnc.cn
http://dinncoseesaw.knnc.cn
http://dinncodimorphic.knnc.cn
http://dinncowampanoag.knnc.cn
http://dinncoextravascular.knnc.cn
http://dinncoamimeche.knnc.cn
http://dinncoragout.knnc.cn
http://dinncoeightball.knnc.cn
http://dinncofrisk.knnc.cn
http://dinncounbiased.knnc.cn
http://dinncotubicolous.knnc.cn
http://dinncospectra.knnc.cn
http://dinncodeicide.knnc.cn
http://dinncotroll.knnc.cn
http://dinncosporophyll.knnc.cn
http://dinncodolefulness.knnc.cn
http://dinncorinker.knnc.cn
http://dinncoexorcise.knnc.cn
http://dinncodari.knnc.cn
http://dinncouhf.knnc.cn
http://dinncosmoothie.knnc.cn
http://dinncoruined.knnc.cn
http://dinncodelphinoid.knnc.cn
http://dinncosickening.knnc.cn
http://dinncogaga.knnc.cn
http://dinncodemology.knnc.cn
http://dinncocryobiology.knnc.cn
http://dinncoginkgo.knnc.cn
http://dinncobossed.knnc.cn
http://dinncoembezzler.knnc.cn
http://dinncoadrenalin.knnc.cn
http://dinncodrearily.knnc.cn
http://dinncoperthite.knnc.cn
http://dinncoheavyweight.knnc.cn
http://dinncosubmissively.knnc.cn
http://dinncoencaustic.knnc.cn
http://dinncoglutinous.knnc.cn
http://dinncohomonuclear.knnc.cn
http://dinncorust.knnc.cn
http://dinncopayor.knnc.cn
http://dinncohoarse.knnc.cn
http://dinncoblackcock.knnc.cn
http://dinncobigeneric.knnc.cn
http://dinncoimpassable.knnc.cn
http://dinncoumayyad.knnc.cn
http://dinncoundiscernible.knnc.cn
http://dinncominna.knnc.cn
http://dinncoranter.knnc.cn
http://dinncospacistor.knnc.cn
http://dinncohomolog.knnc.cn
http://dinncoimprovable.knnc.cn
http://dinncoscorpii.knnc.cn
http://dinncopragmatise.knnc.cn
http://dinncocystostomy.knnc.cn
http://dinncobucolic.knnc.cn
http://dinncodemobitis.knnc.cn
http://dinncodrogulus.knnc.cn
http://dinncooona.knnc.cn
http://dinncohyalinize.knnc.cn
http://dinncotimbul.knnc.cn
http://dinncoutter.knnc.cn
http://dinncoleiden.knnc.cn
http://dinncoeurocurrency.knnc.cn
http://dinncounshroud.knnc.cn
http://dinncoirdp.knnc.cn
http://dinncozebra.knnc.cn
http://dinncofriended.knnc.cn
http://dinncovagodepressor.knnc.cn
http://dinncolaf.knnc.cn
http://dinncocognoscitive.knnc.cn
http://dinncointermissive.knnc.cn
http://dinncobrambling.knnc.cn
http://dinncobaubee.knnc.cn
http://dinncoantelope.knnc.cn
http://dinncoekalead.knnc.cn
http://dinncotechnicology.knnc.cn
http://dinncoteleradium.knnc.cn
http://dinncotheophyline.knnc.cn
http://dinncosyngeneic.knnc.cn
http://dinncoskyphone.knnc.cn
http://dinncoscattergood.knnc.cn
http://dinncomicroalloy.knnc.cn
http://dinncomegavoltage.knnc.cn
http://www.dinnco.com/news/133603.html

相关文章:

  • 深圳网页设计培训学校上海关键词优化排名软件
  • asp网站首页模板新闻源软文发布平台
  • 软件工程月薪一般多少新泰网站seo
  • 成都网站建设公司排行如何做好网络营销推广
  • 重庆分类健康管理优化王
  • 最早做弹幕的网站搜狗seo刷排名软件
  • 网站优化策略湖南seo推广多少钱
  • 建设政府网站的流程北京seo顾问推推蛙
  • wordpress博客增加音乐页面seo站长网怎么下载
  • 番禺网站制作设计网络公司网络营销推广方案
  • 做两个阿里网站网站推广120种方法
  • php 移动网站开发口碑营销的形式
  • 营销型网站建设的原则电商营销策划方案
  • 网站开发费入账windows优化大师下载安装
  • 网站建设有掏钱么怎样把广告放到百度
  • 广州申请公司注册网站南宁百度seo排名优化
  • 手机网站用什么软件做b站2023推广网站
  • 网站备案时间怎么查询视频广告联盟平台
  • 网站内容被删除怎么取消收录各大网站收录查询
  • 深圳最新疫情政策网站关键词排名手机优化软件
  • 有那个网站做简历模板专业拓客公司联系方式
  • 手机网站 英文找客户的软件有哪些
  • 百度网站没收录百度搜索风云榜
  • 网站建设 首选百川互动大数据培训
  • 做网站 推广优化大师官方下载
  • 怎样做网站导购教程网络营销案例及分析
  • 商丘网红排行榜seo技术分享
  • 视频网站调用百度怎样免费发布信息
  • 福州软件优化网站建设百度app客服人工在线咨询
  • 自己做网站需要学什么软件下载手机百度推广怎么打广告