필기_3과목 6장 운영체제의 실제 - JuNijen/Industrial-Engineer-Information-Processing GitHub Wiki
주로 서버용 컴퓨터에서 사용되는 운영체제.
- 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템(Open System)이다.
- 대부분 C 언어로 작성되어 있어 이식성이 높으며, 장치, 프로세스 간의 호환성이 높다.
- 크기가 작고 이해하기가 쉽다.
- 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
- 많은 네트워킹 기능을 제공하므로 통신망(Network)관리용 운영체제로 적합하다.
- 트리 구조의 파일 시스템을 갖는다.
- 전문적인 프로그램 개발에 용이하다.
- 다양한 유틸리티 프로그램이 존재한다.
UNIX의 가장 핵심적인 부분. 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다. 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다. 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입·출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행한다.
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다.
- 시스템과 사용자 간의 인터페이스를 담당한다.
- DOS의 COMMAND.COM과 같은 기능을 수행한다.
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조기억장ㅊ이에서 교체 처리가 가능하다.
- 공용 Shell(Bourrne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 SHell을 사용할 수 있다.
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용한다.
- DOS에서의 외부 명령어에 해당된다.
- 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다.
각 프로세스는 시스템 호출을 통해 커널의 기능을 사용하며, 프로세스 간 통신은 시그널, 파이프, 소켓 등을 사용합니다.
- 시그널 (Signal) : 간단한 메시지를 이용하여 통신하는 것으로 초기 UNIX 시스템에서 사용됨.
- 파이프 (Pipe) : 한 프로세스의 출력이 다른 프로세스의 입력으로 사용되는 단방향 통신 방식.
- 소켓 (Socket) : 프로세스 사이의 대화를 가능하게 하는 쌍방향 통신 방식.
UNIX 파일 시스템의 디렉터리 구조는 트리 구조로 이루어져 있다. 디렉터리나 주변장치를 파일과 동ㅇ일하게 취급한다. 파일 생성 및 삭제 기능, 보호기능을 갖는다. 파일 형식은 일반 파일(Regular File), 디렉터리 파일(Directory File), 특수 파일(Special File)의 세 가지 형식을 제공한다.
UNIX 파일 시스템의 구조는 디스크를 블록으로 분류하여 배치한 구조를 의미한다.
- 부트 블록(Boot Block) : 부팅 시 필요한 코드를 저장하고 있는 블록.
- 슈퍼 블록(Super Block) : 전체 파일 시스템에 대한 정보를 저장하고 있는 블록.
- I-node(Index node)블록 : 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록. [*정보 : 파일 소유자의 사용자 번호 (UID) 및 그룹 번호(GID), 파일 크기, 파일 타입(일반·디렉터리·특수 파일 등), 생성 시기, 최종 변경 시기, 최근 사용 시기, 파일의 보호 권한, 파일 링크 수, 데ㅐ이터가 저장된 블록의 시작 주소]
- 데이터 블록 : 디렉터리별로 디렉터리 엔트리(파일 이름과 I-nodee 번호로 구성되어 이들을 서로 연결해 주는 기능)와 실제 파일에 대한 데이터가 저장된 블록.
- fork : 새로운 프로세스를 생성한다. (하위 프로세스 호출, 프로세스 복제 명령).
- exec : 새로운 프로세스를 수행한다.
- exit : 프로세스 수행을 종료한다.
- wait : fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다린다.
- kill : 프로세스를 제거한다.
- getpid : 자신의 프로세스 아이디를 얻는다.
- getppid : 부모 프로세스 아이디를 얻는다.
- & : 백그라운드 처리를 위해 명령의 끝에 입력한다.
- signal : 신호를 받았을 때 프로세스가 취할 동작을 지정한다.
- pipe : 프로세스 간 통신을 위한 경로를 설정한다.
- ps : 현재 작업중인 프로세스의 상태 정보를 확인한다.
- creat : 파일을 생성시킨다.
- open : 파일을 사용할 수 있는 상태로 준비시킨다.
- close : 파일을 닫는다.
- cp : 파일을 복사한다.
- mv : 파일을 이동시키거나 이름을 변경한다.
- rm : 파일을 삭제한다.
- cat : 파일 내용을 화면에 표시한다.
- chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정한다.
- chown : 소유자를 변경한다.
- find : 파일을 찾는다.
- mknod : 특수 파일을 생성한다.
- mount/unmount : 파일 시스템을 마운팅(새로운 파일 시스템을 기존 파일 시스템의 서브 디렉터리에 연결하는 것)한다./ 마운팅 해제한다.
- mkfs : 파일 시스템을 생성한다.
- fsck : 파일 시스템을 검사하고 보수한다.
- mkdir : 디렉터리를 생성한다.
- chhdir : 현재 사용할 디렉터리 위치를 변경한다.
- rmdir : 디렉터리를 삭제한다.
- ls : 현재 디렉터리 내의 파일 목록을 확인한다.
- finger : 사용자 정보를 표시한다.