Search
Duplicate
📒

[혼공 운영체제] 01. 운영체제 개념, 서비스

상태
미진행
수업
Linux
주제
OS
4 more properties
참고

운영체제

NOTE
프로그램 실행에 필요한 요소들을 시스템 자원이라 하는데, 실행할 프로그램에 자원을 할당하고, 올바르게 실행되도록 돕는 프로그램운영체제라고 한다!
운영체제는 메모리에 올라가고, 커널영역에 할당된다!
운영체제를 정부와 비교해보자! (관리자 개념이라 보면 좋음)
응용 프로그램들이 하드웨어의 자원들을 어떻게 사용할지에 대해 관리해준다.
printf의 함수도 운영체제의 도움을 받아 출력되는 것

운영체제가 하는 일

NOTE

메모리 관리

실행할 프로그램을 메모리에 적재
더 이상 실행되지 않는 프로그램을 메모리에서 삭제

CPU 관리

어떤 프로그램부터 CPU를 이용하게 할지 결정
얼마나 오랫동안 CPU를 이용하게 할지 결정

입출력장치 관리

복수의 프로그램이 동일한 입출력장치 접근 시도 시 동시 접근 방지

운영체제의 큰 그림

NOTE
운영체제에서 사용되는 커널과, 서비스 종류, 등의 개념들에 대해서 알아보자!
3가지 목차에 대해서 질의응답이 가능할정도로 복습하자!

커널

NOTE
운영체제에서 핵심 서비스를 담당하는 부분!
앞으로 언급되는 “운영체제”는 대체로 커널을 지칭한다.
커널에 포함되지 않은 운영체제의 서비스에는 다음과 같은 것이 있다.
사용자 인터페이스
그래픽 유저 인터페이스
그래픽을 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스
커맨드 라인 인터페이스
명령어를 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스

이중모드

NOTE
응용 프로그램이 하드웨어 자원에 직접 접근하지 않고 운영체제를 거치도록 하는 방식! CPU가 명령어를 실행하는 모드를 2가지로 나눠서 실행하게함!
운영체제를 사용하지 않으면 위와같은 상황이 발생함.
운영체제가 응용프로그램들의 자원을 관리하고 보호!
운영체제를 거치도록 하는것이 바로 이중모드 방식!
이중모드의 방식

사용자 모드

운영체제 서비스를 제공받을 수 없는 모드
커널 영역의 코드 실행 불가
일반적인 응용 프로그램의 기본 실행모드

커널 모드

운영체제 서비스를 제공받을 수 있는 모드
커널 영역의 코드 실행 가능
시스템 자원에 접근 가능

시스템 호출

NOTE
이중모드의 커널 모드로 전환하는 방법!
사용자 모드 → 커널 모드로 변환하고 운영체제 코드를 실행!
대표적인 명령어
사용자 모드 커널모드는 생각보다 자주자주 변경된다.

운영체제의 핵심서비스

프로세스 관리

NOTE
실행 중인 프로그램 == 프로세스
CPU가 매우 빠르게 하나씩 처리해서 동시에 실행하는것처럼 보임
프로세스와 스레드, 프로세스 동기화, 교착상태 해결

자원 접근 및 할당

NOTE

CPU

프로세스들에 공정하게 CPU를 할당하기 위한 스케쥴링

메모리

새로운 프로세스가 적재될 때 어느 주소에 적재해야 할지 결정
메모리 공간이 꽉 차 있거나 프로세스를 적재하지 못하는 상황 발생시 처리

입출력장치

인터럽트 서비스 루틴은 운영체제가 제공하는 기능으로 커널영역에 존재.

파일 시스템 관리

NOTE
보조기억장치 속 데이터를 파일과 디렉토리로 관리하는 파일 시스템

시스템 호출(system call) 직접 관찰하기 (strace)

NOTE
strace /bin/ls
Bash
복사
strace 명령어로 확인할 수 있음!
실제 결과