CS/OS

운영체제 구조

우봉수 2023. 3. 13. 14:59

운영체제 서비스

  • 프로그램 실행환경과 프로그램을 실행되도록 하는 서비스를 제공해 준다
    • 사용자 인터페이스(UI)
    • I/O 작업 (입출력 기능)
    • 프로그램 실행
    • 파일 시스템 조작: 디렉토리 읽기, 쓰기, 삭제, 탐색, 나열
    • 통신(컴퓨터 간의 통신)
    • 오류감지
    • 자원할당(한정된 자원(CPU 사이클, 저장장치, I/O장치)을 고르게 분배)
    • 회계(어떤 종류의 자원을 얼마나 많이 사용했는지 분석)
    • 보호 및 보안

사용자 운영체제 인터페이스 CLI(명령 해석기)

  • 때로는 커널에 때로는 시스템 프로그램으로 구현
  • 주로 사용자로부터 명령을 입력 받아 실행한다
  • 내장된 명령어 때로는 프로그램 이름이 입력됨 ex: java —version

시스템 콜

  • OS가 제공하는 서비스를 사용할 수 있게 하는 프로그램밍 인터페이스
  • 주로 시스템 콜을 직접 호출하지 않고 고수준 API를 통해 프로그램에 엑세스
  • 예시: 파일복사
    • 시스템에서 파일 내용 확인
    • 입력 파일 오픈
    • 출력 파일이 없다면 생성 후 열기
    • 파일의 한 블럭 단위로 반복하여 내용 전달
    • 출력 파일 닫기
  • 구현: API를 준수하고 호출 결과 OS가 어떤 작업을 수행하는지 이해하기만 하면 된다

시스템 콜 매개변수 전달 방법3가지

  • 레지스터에 매개변수 전달
  • 메모리의 블록 또는 테이블에 실제 매개변수 저장, 그 불록의 주소를 레지스터에 저장하여 매개변수로 전달
  • 프로그램은 매개변수를 스택에 push해서 전달하고 운영체제는 pop하여 매개변수를 얻는다
  • 블록 및 스택 방법은 전달되는 매개변수의 개수 또는 길이를 제한하지 않는다.

시스템 콜의 종류

  • 프로세스 제어
    • 프로세스 생성, 종료
    • 프로세스 중지
    • 프로세스 코드를 메모리로 적재
    • 프로세스 속성 가져오기
    • 메모리 할당, 메모리 반환
    • 오류 발생시 현재까지 수행한 나용을 메모리에 덤프
    • 버그를 찾기 위한 디버그 실행
    • 프로세스가 공유하는 데이터 접근을 관리하기 위한 Lock
  • 파일 관리
    • 파일 생성 삭제 쓰기 읽기
    • 파일 속성 가져오기 세팅하기
  • 장치 관리
    • 장치 요청 해제 읽기 쓰기 접근 위치 재조정
    • 장치 속성 가져오기 세팅하기
    • 논리적으로 부착 분리 시키기
  • 정보 유지 관리
    • 현재 시간 및 날짜 얻기 세팅하기
    • 시스템 날짜 얻기, 세팅하기
    • 프로세스, 파일, 및 장치 속성 얻기, 세팅하기
  • 통신
    • 통신 연결 생성, 삭제
    • 메시지 전달 모델을 사용한다면 호스트 이름 또는 프로세스 이름을 명시하여 메시지 송신 또는 수신
      • 클라이언트에서 서버로
    • 현재 상태 정보 전송
  • 보호
    • 자원에 대한 접근 제어
    • 권한 획득 및 세팅
    • 사용자 접근 허용 및 거부

운영체제 서비스

  • 프로그램 실행환경과 프로그램을 실행되도록 하는 서비스를 제공해 준다
    • 사용자 인터페이스(UI)
    • I/O 작업 (입출력 기능)
    • 프로그램 실행
    • 파일 시스템 조작: 디렉토리 읽기, 쓰기, 삭제, 탐색, 나열
    • 통신(컴퓨터 간의 통신)
    • 오류감지
    • 자원할당(한정된 자원(CPU 사이클, 저장장치, I/O장치)을 고르게 분배)
    • 회계(어떤 종류의 자원을 얼마나 많이 사용했는지 분석)
    • 보호 및 보안

사용자 운영체제 인터페이스 CLI(명령 해석기)

  • 때로는 커널에 때로는 시스템 프로그램으로 구현
  • 주로 사용자로부터 명령을 입력 받아 실행한다
  • 내장된 명령어 때로는 프로그램 이름이 입력됨 ex: java —version
  •