수행되는 프로그램
→ instance of a program being executed
→ 같은 program도 다른 process에 의해 수행될 수 있고, 각 process는 separated & independent
Linux
ps -auwwx
→ 모든 process 목록
→ 정보 주고받으려면 항상 OS 거쳐야
: 다중 프로그래밍에서 프로세스 잠시 중단 → 다시 실행
의 과정에서 그 사이에 다른 process가 사용시 내용 다 날라감
→ 다시 시작 시 멈춘 바로 그 상태에서 시작하기 위해 CPU 상태 저장해야함
e.g. registers, stacks, ...
create a process, delete a process
e.g. command interpreter / shell 이라는 프로세스가 터미널로부터 명령어
→ 사용자가 컴파일 명령 내림
→ 쉘이 컴파일러 실행 가능한 새 프로세스 만듬
→ 컴파일 후 스스로 종료하는 system call
suspend, resume, clone process
inter-process communication / synchronization
: 연관성 있고, 협력하는 프로세스 끼리의 통신, 동기화
subprocess 생성 가능
: directly accessed storage for CPU
프로그램에 memory space 할당
할당한 memory 회수
Address space management
: virtual memory systems
physical → virtual 로의 mapping through page tables
각 프로세스 당 얼만큼의 memory 할당할지?
언제 memory에서 process 지울지?
: convenient abstraction of disks & I/Os
file
: a basic long-term storage unit
→ persistent info 의 collection
directory
: a special kind of file
→ 다른 파일의 이름, metadata를 포함하는 file
file, directory creation, deletion
manipulation of files, directories
e.g. read, write, extend, rename, protect
copy, lock
accounting, quotas(할당)
indexing, search
file versioning
: UNIX에서 CD-ROM이나 DVD의 파일 시스템 메인 트리에 연결
: I/O 장치가 파일처럼 보이도록
block special file
: 디스크와 같이 임의접근 가능한 블록으로 구성된 장치 모델링용
character special file
: 프린터, 모뎀과 같이 문자열 받아들이거나 출력하는 장치 모델용
e.g.
os가 program(user, system)과 device간의 standard interface 제공
: file system - disk, sockets - network, frame buffer - video
device driver
: routine that interacts with specific device type
→ encapsulates device-specific knowledge
e.g. device의 초기화? i/o의 질의? interrupt와 error의 처리?
→ command interpreter
a particular program that handles the interpretation of users's commands and help to manage processes
command interpreter가 OS의 standard part일 수도
UNIX
: non-privileged process that provides an interface to user
MAC OS
: no command language
→ 중요한 부분이지만 운영체제의 일부는 x