필기_3과목 6장 운영체제의 실제 - JuNijen/Industrial-Engineer-Information-Processing GitHub Wiki

#100. UNIX의 개요

주로 서버용 컴퓨터에서 사용되는 운영체제.

1. UNIX의 특징

  • 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템(Open System)이다.
  • 대부분 C 언어로 작성되어 있어 이식성이 높으며, 장치, 프로세스 간의 호환성이 높다.
  • 크기가 작고 이해하기가 쉽다.
  • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
  • 많은 네트워킹 기능을 제공하므로 통신망(Network)관리용 운영체제로 적합하다.
  • 트리 구조의 파일 시스템을 갖는다.
  • 전문적인 프로그램 개발에 용이하다.
  • 다양한 유틸리티 프로그램이 존재한다.

2. UNIX 시스템의 구성

커널(Kernel)

UNIX의 가장 핵심적인 부분. 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다. 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다. 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입·출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행한다.

쉘(Shell)

  • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다.
  • 시스템과 사용자 간의 인터페이스를 담당한다.
  • DOS의 COMMAND.COM과 같은 기능을 수행한다.
  • 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조기억장ㅊ이에서 교체 처리가 가능하다.
  • 공용 Shell(Bourrne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 SHell을 사용할 수 있다.

Utility Program

  • 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용한다.
  • DOS에서의 외부 명령어에 해당된다.
  • 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다.

UNIX에서의 프로세스 간 통신

각 프로세스는 시스템 호출을 통해 커널의 기능을 사용하며, 프로세스 간 통신은 시그널, 파이프, 소켓 등을 사용합니다.

  • 시그널 (Signal) : 간단한 메시지를 이용하여 통신하는 것으로 초기 UNIX 시스템에서 사용됨.
  • 파이프 (Pipe) : 한 프로세스의 출력이 다른 프로세스의 입력으로 사용되는 단방향 통신 방식.
  • 소켓 (Socket) : 프로세스 사이의 대화를 가능하게 하는 쌍방향 통신 방식.

#101. UNIX 파일 시스템과 명령어

1. 파일 시스템

UNIX 파일 시스템의 디렉터리 구조는 트리 구조로 이루어져 있다. 디렉터리나 주변장치를 파일과 동ㅇ일하게 취급한다. 파일 생성 및 삭제 기능, 보호기능을 갖는다. 파일 형식은 일반 파일(Regular File), 디렉터리 파일(Directory File), 특수 파일(Special File)의 세 가지 형식을 제공한다.

2. UXIN 파일 시스템의 구조

UNIX 파일 시스템의 구조는 디스크를 블록으로 분류하여 배치한 구조를 의미한다.

  • 부트 블록(Boot Block) : 부팅 시 필요한 코드를 저장하고 있는 블록.
  • 슈퍼 블록(Super Block) : 전체 파일 시스템에 대한 정보를 저장하고 있는 블록.
  • I-node(Index node)블록 : 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록. [*정보 : 파일 소유자의 사용자 번호 (UID) 및 그룹 번호(GID), 파일 크기, 파일 타입(일반·디렉터리·특수 파일 등), 생성 시기, 최종 변경 시기, 최근 사용 시기, 파일의 보호 권한, 파일 링크 수, 데ㅐ이터가 저장된 블록의 시작 주소]
  • 데이터 블록 : 디렉터리별로 디렉터리 엔트리(파일 이름과 I-nodee 번호로 구성되어 이들을 서로 연결해 주는 기능)와 실제 파일에 대한 데이터가 저장된 블록.

3. UNIX 명령어

프로세스 관련 명령어

  • 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 : 사용자 정보를 표시한다.

#102. Windows

1.

2.

3.

#103. MS-DOS

1.

2.

3.

⚠️ **GitHub.com Fallback** ⚠️