操作系统课件 第十二章 UNIX 实例分析(1).ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:62 大小:201KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统课件 第十二章 UNIX 实例分析(1).ppt

操作系统课件第十二章UNIX实例分析(1).ppt

预览

免费试读已结束,剩余 52 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第十二章UNIX操作系统12.1历史回顾12.1历史回顾第1版(1971)12.2系统结构内核部分内核部分外壳部分12.3进程管理12.3.1进程组成(映像)12.3.2进程控制块structproc{charp_stat;charp_flag;charp_pri;charp_sig;//signalreceivedcharp_uid;//useridcharp_time;//residenttimeforschedulingcharp_cpu;//cpuusagecharp_nice;//niceforschedulingcharp_ttyp;//controllingttyintp_pid;//uniqueprocessidintp_ppid;//parentprocessidintp_addr;//addressofswappableimageintp_size;//sizeofswappableimage(*64bytes)intp_wchan//eventprocessiswaitingint*p_textp;//pointertotextstructure}structuser{intu_rsav[2]intu_fsav[25]……charu_uid;//effectiveuseridcharu_gid;//effectivegroupidcharu_ruid;//realuseridcharu_rgid;//realgroupidintu_procp;//pointertoprocstructureint*u_base;//baseaddressforIOint*u_count;//bytesremainingforIOint*u_offset[2];//offsetinfileforIOint*u_cdir;//pointertoinodeofcurrentdirint*u_pdir;//inodeofparentdirectoryintu_uisa[16];//prototypesegmentationaddressintu_uisd[16];//prototypesegmentationdescriptintu_ofile[NOFILE];//pointerstofilestructintu_arg[5];//argumentstosystemcallintu_tsize;//textsize(*64)intu_dsize;//datasize(*64)intu_sszie;//stacksize(*64)intu_utime;//thisprocessusertimeintu_stime;//thisprocesssystemtimeintu_cutime[2];//childprocessusertimeintu_cstime[2];//childprocesssystemtime……}structtext{intx_daddr;//diskaddressofsegmentintx_caddr;//coreaddressifloadedintx_size;//*64int*x_iptr;//inodeofprototypecharx_count;//referencecountcharx_ccount;//numberofloadedprocesses}12.3.3进程状态及其转换进程状态及其转换12.3.4进程调度进程调度实现12.3.5进程互斥12.3.6进程同步信号(signal)信号(signal)信号(signal)信号(signal)管道(Pipes)套接字(socket)有关Socket通讯的系统调用如下:1.sd=socket(domain,type,protocol)创建一个socket,返回一个整数,称为socket的描述符.2.bind(sd,address,length)将sd与address绑定.3.connect(sd,address,length)客户端用于发起一次连接.4.listen(sd,length)服务器端通知核心,准备好接受来自客户的连接.5.nsd=accept(sd,address,length)服务器端具体接受一次连接,返回一个新描述符,用于接收.6.count=send(sd,msg,length,flags)客户端用于发送一个消息.7.coun=recv(sd,buf,length,flags)服务器端用于接收一个消息.8.shutdown(sd,mode)结束一次连接,但sd依然有效.9.close(sd)终