作業系統設計與實現 讀書筆記6 系統呼叫

2021-04-28 20:08:32 字數 1993 閱讀 6444

當前系統呼叫都採用的是posix標準,posix標準以其簡潔易用在類unix作業系統中流行,以至於linux從一開始就遵從posix標準。

本節介紹應用程式和作業系統之間的介面系統呼叫。採用的是

posix

,這個介面被

minix3, unix, linux

等許多現代作業系統所遵循。系統呼叫以

c語言的形式出現。

系統呼叫和普通過程呼叫的區別:系統呼叫時在核心狀態執行,

cpu存在乙個切換。普通過程呼叫不存在切換。

以讀檔案操作為例:

count = read(fd, buffer, nbytes);

minix

系統主要的系統呼叫列表:

程序管理:

pid = fork();

pid = waitpid(pid, &statloc, opts);

s = wait(&status);

s = execve(name, argv, envp);

exit(status);

size = brk(addr);

pid = getpid();

pid = getpgrp();

pid = setsid(); 訊號

(singnals)

l = ptrace(req, pid, addr, data);

s = sigaction(sig, &act, &oldact);

s = sigreturn(&context);

s = sigprocmask(how, &set, &old);

s = sigpending(set);

s = sigsuspend(sigmask);

s = kill(pid, sig);

residual = alarm(seconds);

s = pause();

檔案管理:

fd = create(name, mode)

fd = mknod(name, mode, addr)

fd = open(file, how, ...)

s = close(fd);

n = read(fd, buffer, nbytes)

n = write(fd, buffer,nbytes)

pos = lseek(fd, offset, whence)

s = stat(name, &buf)

s = fstat(fd, &buf)

fd = dup(fd)

s = pipe(&fd[0])

s = ioctl(fd, request, argp)

s = access(name, amode)

s = rename(old, new)

s = fcntl(fd, cmd, ...)

目錄和檔案系統管理

s = mkdir(name, mode)

s = rmdir(name)

s = link(name1, name2)

s = unlink(name)

s = mount(special, name, flag)

s = umount(special)

s = sync()

s = chdir(dirname)

s = chroot(dirname)

保護許可權相關

s = chmod(name, mode)

uid = getuid()

gid = getgid()

s = setuid(uid)

s = setgid(gid)

s = chown(name, owner, group)

oldmask = umask(complmode)

時間管理

seconds = time(&seconds)

s = stime(tp)

s = utime(file, timep)

s = times(buffer)

作業系統設計與實現 讀書筆記1

rel file list href file c 5cdocume 7e1 5czhangx 7e1.sdh 5clocals 7e1 5ctemp 5cmsohtml1 5c01 5cclip filelist.xml 最近對作業系統的原理頗感興趣,上學期間學習作業系統課程時沒有珍惜,只是為了拿...

作業系統讀書筆記

前言管程 訊號量體系有內容如下 整型訊號量 記錄型訊號量 and型訊號量 訊號量集。最容易搞混的就是整型訊號量和記錄型訊號量,理解之後很容易區分,記住一點 整型訊號量不遵循 讓權等待 的原則,只要待操作的訊號量s 0,就會處於一種 忙等待 的狀態,更嚴重的是,一旦事件發生,會導致一種稱之為 驚群現象...

Linux核心設計與實現讀書筆記一 作業系統與核心

1 unix強大的原因 a unix很簡潔,僅僅提供幾百個系統呼叫介面 b 所有東西都被看成檔案對待 這種抽象使得對資料和對裝置都通過一套系統呼叫來操作 c 使用c語言編寫,易於移植 d 程序建立迅速 e 簡單穩定的程序間通訊元語。2 作業系統 作業系統是指在整個系統中負責完成最基本功能和系統管理的...