190 likes | 387 Views
Operating system سيستم عامل. Shahriar Pirnia http://www.pirnia.net. (System Calls). فراخوانها ي س ي ستم ي. يک مثال: فراخوان سيستمي read : count = read (file,buffer,nbytes). براي خواندن از يک فايل مي باشد. سه پارامتر دارد: : نام فايلي که بايد خوانده شود. File
E N D
Operating systemسيستم عامل Shahriar Pirnia http://www.pirnia.net
(System Calls) فراخوانهاي سيستمي يک مثال: فراخوان سيستمي read : count = read (file,buffer,nbytes) براي خواندن از يک فايل مي باشد. سه پارامتر دارد: : نام فايلي که بايد خوانده شود.File : محلي براي قرار دادن آنچه که خوانده شده است.Buffer : تعداد بايتهاي که بايد خوانده شودnbytes
فراخوانهاي سيستمي براي مديريت پروسس (Process management) فراخوان سيستمي Fork: While (TRUE) { Read-command (command,parameters) If (fork ( ) != 0) { /*parent code*/ waitpid (-1,&status,0); } else { /* child code */ execve(command,parameters,0); } }
Exit فراخوان سيستمي BRKفراخوان سيستمي size = BRK (addr) getpidفراخوان سيستمي Pid= getpid
فراخوانهاي سيستمي براي سيگنالينگ (علامت دهي) Sigaction(SIGINT,SIG_IGN,NULL); Sigaction(SIGOUT,SIG_IGN,NULL); DEL Quit
فراخوانهاي سيستمي براي مديريت فايل Fd = creat (“abc”, 0751) Fd = mknod (“/dev/ttyc2”,020744,0x0402) fd = open (file,how,…) s = close(fd) N = read (fd,buffer,nbytes) N = write (fd,buffer,nbytes) pos = lseek (fd,offset,whence) Fd=dup(1); Cat File1 File2 | Sort Pipe(&fd[0]);
S = fstat (fd,&buffer) S = stat (name,&buffer)
فراخوانهاي سيستمي براي مديريت فهرست Link(“/usr/jim/memo”,”/usr/ast/note”); Mount(“/dev/fd0”,”/mnt”,0); Chdir(“/usr/ast/test”);
فراخوانهاي سيستمي براي حفاظت Chmod(“file”,0644); SETUID SETGID CHOWN ACCESS فراخوانهاي سيستمي براي مديريت زمان
ساختارهاي سيستم عامل (OS Structure) (Monolithic Systems) سيستمهاي يکپارچه (Layered Systems)سيستمهاي لايه اي (Virtual Machines)ماشينهاي مجازي (Client/Server Systems)مدل مشتري خدمتگزار
: از تعدادي رينگهاي هم مرکز تشکيل شده است . Multics
(Virtual Machines)ماشينهاي مجازي CP/CMS VM/370 (1979) Virtual Machine Monitor Conversational Monitor System (CMS) Exo Kernel