[혼공컴운_4주]Chapter9 운영체제 시작하기

study_record·2024년 1월 23일
0

혼공컴운

목록 보기
9/17

운영체제란

  • 시스템자원(자원) : 프로그램 실행에 마땅히 필요한 요소
    • CPU,메모리, 보조기억장치등 컴퓨터의 모든 부품을 의미함
  • 운영체제 : 실행할 프로그램자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
  • 커널영역 : 운영체제는 컴퓨터가 부팅될때 메모리내 커널영역에 적재되더 실행됨
  • 사용자영역 : 커널영역을 제외한 나머지 영역을 의미함. 응용프로그램이 적제되는 영역
  • 응용프로그램 : 사용자가 특정목적을 위해 사용하는 일반적인 프로그램을 의미함

    운영체제는 커널영역에 적제되어 사용자영역에 적재된 프로그램들에 자원을 할당하고 이를 올바르게 실행되도록 돕습니다.

  • 역할
    • 메모리에 프로그램을 적재함
    • 더이상 실행되지 않는 프로그램을 메모리에서 삭제함
    • 여러프로그램에 CPU자원을 할당함
  • 운영체제를 이해하면 코드가 어떻게 실행되는지 하드웨어에 어떤 문제가 있는지 알수있어서 문제를 해결할수 있음
  • 운영체제를 공부하면 오류메세지를 이해할 수 있다

커널

  • 커널 : 운영체제의 핵심서비스를 담당하는 부분
  • 사용자 인터페이스 : 사용자와 컴퓨터가 상호작용하는 통로. 커널에 포함되지 않음
    • 그래픽 유저 인터페이스 : 그래픽을 기반으로 컴퓨터와 상호작용하는 인터페이스 ex) 바탕화면
    • 커맨드 라인 인터페이스 : 명령어를 기반으로 상호작용하는 인터페이스

이중모드(Dual Mode)

  • CPU가 명령어를 실행하는 모드를 사용자모드와 커널모드로 구분하는 방식
  • 사용자모드
    • 운영체제 서비스를 제공받을 수 없는 실행모드
    • 일반적인 응용프로그램은 기본 사용자모드로 실행됨
    • 사용자모드로 실행되는 일반적인 응용프로그램은 자원 접근할수 없음
  • 커널모드
    • 운영체제 서비스를 제공받을 수 있는 실행모드
    • 운영체제는 커널모드로 실행되기 떄문에 자원에 접근할수 있음
  • 사용자모드와 커널모드 판단은 슈퍼바이저 플래그로 확인함
  • 시스템호출(system call) : 운영체제 서비스를 제공받기위한 요청
    • 사용자 모드로 실행되는 프로그램은 시스템 호출을 통해서 커널모드로 전환하고 운영체제 서비스를 제공받음

  • 소프트웨어 인터럽트 : 특정 명령어에 의해 발생된 인터럽트. 시스템호출도 소프트웨어 인터럽트중 하나.

운영체제의 서비스

  • 운영체제 핵심서비스
    • 프로세스 관리
    • 자원 접근 및 할당
    • 파일 시스템 관리

프로세스관리 → 10장 주제

  • 프로세스 : 실행중인 프로그램
  • CPU는 한번에 한 프로세스만 실행할수 있기 때문에 프로세스 실행을 전환을 반복함
  • 운영체제는 프로세스 특징에 맞춰서 관리하고 실행해야함
  • 프로세스 동기화 : 여러프로세스가 동시에 일어나는 완경에 필수
  • 교착상태 : 프로세스가 더이상 실행되지 못하는 상태

자원 접근 및 할당

  • CPU → 11장
    • CPU 스케쥴링: 운영체제 프로세스에 CPU를 공정하게 할당하고 얼마나 오래 사용할지 결정하는것
  • 메모리 : 같은 프로세스여도 실행할때마다 주소가 달라지고 적재를 못하는 상황일때 어떻게 메모리에 할당하는지 → 14장 주제
  • 입출력 장치 : 인터럽트 서비스 루틴을 제공하면 입출력 작업을 실행함

파일 시스템 관리 → 15장 주제

  • 파일시스템 : 파일 열기, 삭제, 생성에 관련한 시스템
  • 운영체제가 보조기억장치 속 데이터를 어떻게 파일과 디렉터리로 관리하는가

가상머신과 이중모드

  • 가상머신 : 소프트웨어적으로 만든 가상 컴퓨터. 새로운 운영체제와 응용프로램을 실행할 수 있음
  • 운영체제에 가상머신을 설치하면 사용자모드로 작동
  • 하이퍼바이저 모드 : 가상머신을 지원하는 CPU에서 가상머신을 위해 만든 모드. 가상머신상에서 작동하는 프로그램은 하이퍼바이저 모드로 운영체제 서비스를 받음.

시스템 호출의 종류

  • 시스템 호출은 운영체제 서비스를 제공받기 위한 방법 → 이것만 잘 이해해도 운영체제를 잘 이해할 수 있음

  • 프로그래밍 언어는 시스템 호출을 통해서 실행됨

  • 프로세스 관리시스템 호출설명
    프로세스 관리fork()새 자식 프로세스 생성
    프로세스 관리execve()프로세스 실행
    프로세스 관리exit()프로세스 종료
    프로세스 관리waitpid()자식 프로세스 종료까지 대기
  • 파일 관리시스템 호출설명
    파일 관리open()파일 열기
    파일 관리close()파일 닫기
    파일 관리read()파일 읽기
    파일 관리write()파일 쓰기
    파일 관리state()파일 정보 획득
  • 디렉터리 관리시스템 호출설명
    디렉터리 관리chdir()작업 디렉터리 변경
    디렉터리 관리mkdir()디렉터리 생성
    디렉터리 관리rmdir()비어있는 디렉터리 삭제
  • 파일시스템 관리시스템 호출설명
    파일시스템 관리mount()파일시스템 마운트
    파일시스템 관리umount()파일시스템 마운트 해제

📚마무리문제

P.267

1번 빈칸채우기 (자원)

  • 운영제체는 실행할 프로그램에 ( )을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램입니다.

2번 운영체제 설명으로 틀린것은? (2)번
1) 운영체제를 이해하면 하드웨어와 프로그램을 더 깊이 이해할수 있다
2) 운영체제는 사용자 영역에 적재된다
3) 운영체제는 시스템 자원을 관리하는 프로그램이다
4) 운영체제는 시용자가 실행하는 프그램이 올바르게 실행되도록 돕는다.

P.281

1번 빈킨 채우기 (커널)

  • ( )은 운영체제의 핵심기능을 담당하는 부분을 의미한다

2번 이중모드와 시스템호출 설명에 대해 틀린것은? (4)번
1) 운영체제의 핵심서비스는 커널 모드로 실행됩니다.
2) 일반적인 응용프로그램은 사용자 모드로 실행됩니다.
3) 시스템 호출을 통해 사용자 모드에서 커널모드로 전환될수 있다
4) 시스템호출은 인터럽트와 연관없다.

3번 운영체제 핵심서비스가 아닌것은? (3)번
1) 프로세스 관리
2) 자원접근 및 할당
3) 사용자 인터페이스 제공
4) 파일시스템 관리

0개의 댓글