操作系统
jonda
平平凡凡地做人,踏踏实实地做事。
展开
-
操作系统那些事
现代操作系统的实现是一个高度抽象的、复杂的、伟大的工程。本文主要是简单介绍操作系统里面的最重要的三个抽象概念:进程,虚拟地址空间,文件,以及他们各自涉及到的相关要点。 进程进程是对cpu的抽象,cpu是执行一条条的指令,进程被抽象为程序的执行流。 跟进程相似的一个概念是线程,其中线程可以再分为2类,一类是用户级线程,也就是posix线程(c语言里面的pthread类函数);还有原创 2011-06-25 15:59:00 · 915 阅读 · 0 评论 -
多用户通过ssh使用一台机器的进程模型
Linux系统支持多用户,一般是通过使用ssh协议的某终端(如putty,secureCRT)去连接。多个用户连接以后,操作系统的进程结构如下图所示:最初的时候系统中只有一个sshd在等待连接,来一个连接就fork一个sshd子进程,这个子进程再fork一个bash进程,即she原创 2011-07-25 10:23:44 · 668 阅读 · 0 评论 -
操作系统那些事(二)
好久没有写blog了,原因是最近身体的种种状况和各种失常。虽然日常工作是做web开发,似乎与与此文毫无关系,但是身在曹营心在汉,出于对系统和网络的兴趣,我更愿意去搞清楚计算机是怎么运行的,网络是怎样去互联的。本文主要谈及信号,僵尸进程,阻塞,非阻塞,同步io,异步io等操作系统相关概念。一个进程正常退出或者是因某些因素异常退出时,它在用户空间的数据会被操作系统回收,但是PCB(进程原创 2011-10-31 15:25:13 · 563 阅读 · 0 评论 -
程序的执行——从机器级别看程序的行为
相应的pdf文档原创 2014-06-27 17:18:08 · 570 阅读 · 0 评论 -
滥用error_reporting之大坑
写了一个脚本,批量输出静态内容。按照惯例,先require配置文件、公共文件,然后编码我的业务逻辑。很顺利地写完了,调试的时候发现脚本毫无提示地异常地中断了,仔细看了一下代码,原来是一个函数未定义,但是为什么不会报错呢?我查看了php的配置display_error是打开的,而且我还设置了error_reporting(7),但是函数未定义的错误还是不会报,但如果在哪条语句后面没有加上分号却是原创 2014-09-05 15:23:50 · 1336 阅读 · 0 评论