modesta.log
로그인
modesta.log
로그인
혼자 공부하는 컴퓨터 구조 + 운영체제 Section 9. 운영체제 시작하기
jihyelee
·
2023년 8월 10일
팔로우
0
운영체제
컴퓨터구조
0
achitecture-os
목록 보기
9/15
강의 링크
운영체제를 알아야 하는 이유
모든 프로그램은 실행을 위해 자원을 필요로 함
자원, 시스템 자원
프로그램 실행에 있어 마땅히 필요한 요소
컴퓨터의 4가지 핵심 부품 포함
운영체제
실행할 프로그램에 필요한
자원을 할당
e.g. 프로그램을 메모리에 적재 혹은 삭제 (메모리 관리)
e.g. 프로그램의 CPU 사용 순서 및 시간 할당 (CPU 관리)
e.g. (입출력장치 관리)
프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
사용자를 위한 프로그램이 아니라
프로그램을 위한 프로그램
커널 영역
에 적재되는 프로그램
참고. 응용 프로그램(application software)이란 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램
하드웨어와 응용 프로그램 사이의 다리 역할
운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요가 없음
프로그램을 만드는 개발자는 운영체제를 알아야 함
오류 메세지에 대해 깊이 이해할 수 있음 (문제 해결 능력 증가)
운영체제의 큰 그림
커널
운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나
다양한 종류의 운영체제 또한 존재
e.g. Windows, android, macOS, iOS, linux, ...
운영체제가 제공하는 기능은 다양하나 가장 핵심적인 서비스는 존재
e.g. 자원에 접근하고 조작, 프로그램을 올바르고 안전하게 실행, ...
운영체제의
핵심 서비스
를 담당하는 부분 = 커널
참고. 운영체제에는 속하는데 커널에는 속하지 않는 기능 중 하나: 유저 인터페이스(UI)
시스템 콜(= 시스템 호출)
과
이중 모드
사용자가 실행하는 프로그램은 자원에 직접 접근할 수 없음 (위험)
운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호
이러한 문지기 역할은 이중 모드로 구현
이중 모드
CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식
사용자 모드
운영체제 서비스를 제공받을 수 없는 실행 모드
커널 영역의 코드를 실행할 수 없는 실행 모드
자원 접근 불가
커널 모드
운영체제 서비스를 제공받을 수 있는 실행 모드
자원 접근을 비롯한 모든 명령어 실행 가능
플래그 레지스터의 슈퍼바이저 플래그 사용 (1 = 커널 모드, 0 = 사용자 모드)
시스템 호출
커널 모드로 전환하여 실행하기 위해 응용 프로그램이 운영체제를 호출
일종의 소프트웨어 인터럽트
시스템 호출이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사
1) 시스템 호출 -> 2) 운영체제 코드 실행 -> 3) 시스템 호출 복귀
운영체제의
서비스 종류
프로세스 관리
프로세스 == 실행 중인 프로그램
수많은 프로세스들이 동시에 실행
동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리
프로세스와 스레드, 프로세스 동기화, 교착상태 해결
자원 접근 및 할당
CPU
CPU 스케줄링
어떤 프로세스를 먼저, 얼마나 오래 실행하는가
메모리
페이징, 스와핑
입출력장치
인터럽트 서비스 루틴
파일 시스템 관리
관련된 정보를 파일이라는 단위로 저장 장치에 보관
파일들을 묶어 폴더(디렉터리) 단위로 저장 장치에 보관
jihyelee
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab
팔로우
이전 포스트
혼자 공부하는 컴퓨터 구조 + 운영체제 Section 8. 입출력장치
다음 포스트
혼자 공부하는 컴퓨터 구조 + 운영체제 Section 10. 프로세스 개요
1개의 댓글
댓글 작성
happy
2023년 8월 10일
개발자로서 배울 점이 많은 글이었습니다. 감사합니다.
답글 달기
개발자로서 배울 점이 많은 글이었습니다. 감사합니다.