[운영체제] Operating System 정리 2
2. System Structures
OS의 서비스 중 user에게 도움이 되는 것
user interface(CLI_kernel, shell, GUI, batch)
program execution : 프로그램을 메모리로 가져오고 실행시킨다.
I/O operation : running program이 요구할 수 있다.
file-system manipulation
communication : shared memory or message passing.
error detection
resource share를 통한 효율적 동작의 보장
resource allocation : 동시 접속시
accounting : 어떤 유저가 무엇을 얼마나 사용하였는지
protection and security
API를 system call 대신 사용하는 이유?
program portability : 같은 API를 사용하는 system이면 항상 compile과 실행이 가능하다.
system call이 프로그래머에게 더 세세하고 어렵다.
PASS PARAMETER to OS
간단 : register -> 한정적
block, table에 저장 후 주소를 register에 저장한다.
stack에 프로그램을 통해 넣고 os를 통해 뺀다.
block과 stack은 길이나 갯수에 제약이 없다.
OS design
policy : what will be done?
mechanism : how to do it?
둘을 나누는 이유는 하나가 수정되어도 손상이 덜 가서 시스템 안정성이 높기 때문이다.
파일 디렉토리 생성, 삭제 : create(), delete()
파일 디렉토리 열기, 닫기 : open(), close()
파일 속성 불러오고 설정 : get_file_attributes(), set_file_attributes()
파일 이동 및 복사 : move(), copy()
파일 읽기 쓰기 : read(), write()
microkernel의 장점
특정 OS 맞추어 microkernel을 개발해서 os 설치가 가능하다. -> 각종 처리기에 os 설치
커널 필요 없을 때 커널의 수정 없이 새로운 기능을 추가할 수 있다.
유저모드에서 프로그램 실행하면 시스템이 망가질 위험이 낮다.
portability가 상승한다.
단 단점은 message passing을 이용한 통신으로 인해 오버헤드가 큰 것이다.