일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩 자율학습 html + css + 자바스크립트
- JavaScript
- css배경
- Git
- 코딩 자율학습 html + css + 자바스크립트]
- CSS
- TS
- html 기본문서
- 혼자 공부하는 컴퓨터구조+운영체제
- css박스 모델
- react
- html 문서작성
- JS
- html 필수태그
- 코딩
- https://api.jquery.com/
- 메모리와 캐시 메모리
- HTML
- do it! 한권으로 끝내는 웹 기본 교과서 html+css+자바스크립트 웹 표준의 정석
- propschildren
- 자바스크립트
- CPU
- 이벤트
- Do it
- 코딩자율학습
- html 실무
- cpu 성능 향상 기법
- do it! html+css+자바스크립트 웹 표준의 정석
- css필수 속성
- 코딩 자율학습
- Today
- Total
게으른 나에게
[혼자 공부하는 컴퓨터구조+운영체제] "chapter9. 운영체제 시작하기" 본문
9-1 운영체제를 알아야 하는 이유
데스크톱 운영체제: 윈도우, macOS, 리눅스
스마트폰 운영체제: 안드로이드, IOS
운영체제: 컴퓨터 부품들을 관리하고, 개발한 프로그램이 올바르게 실행되도록 도움.
운영체제
모든 프로그램은 하드웨어 필요.
시스템 자원(자원): 프로그램 실행에 마땅히 필요한 요소. 컴퓨터 부품을 모두 자원.
=> 모든 프로그램은 실행되기 위해 반드시 자원 필요.
운영체제: "실행할 프로그램에 필요한 자원 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램"
운영체제는 메모리에 적재되어야 함.
커널 영역: 운영체제는 특별한 프로그램이기 때문에 항상 컴퓨터 부팅될 때 메모리 내 따로 적재 되어 실행되는 공간.
사용자 영역: 커널 영역 제외, 사용자가 이용하는 응용 프로그램 적재되는 영역.
일반적으로 메모리에는 여러개 응용 프로그램이 사용자 영역에 적재되어 실행.
메모리 주소가 겹치지 않도록 적당한 공간에 프로그램 적재해준 건 운영체제.
운영체제: 실행할 프로그램 메모리 적재, 실행되지 않는 프로그램 메모리에서 삭제하며 지속적으로 메모리 자원 관ㄹ.
응용 프로그램이 실행되려면 반드시 CPU 필요.
운영체제는 최대한 공정하게 여러 프로그램에 CPU 자원 할당.
워드 프로세서와 메모장 동시에 동일한 프린터 이용하려는 상황.
운영체제는 동시에 두개의 프로그램이 프린터를 사용하지 못하도록 막음. 하나의 프로그램이 프린터를 이용하는 동안 다른 프로그램 기다리게 해 프린터 자원 관리.
운영체제 관리할 자원별로 기능 나누어짐.
운영체제 알아야하는 이유
문제해결의 실마리 위해.
대표적인 운영체제와의 상호작용 예시 "오류 메시지"
9-2 운영체제의 큰 그림
운영체제: 사용자를 위한 프로그램이 아닌 사용자가 실행하는 프로그램을 위한 프로그램.
운영체제의 심장, 커널
운영체제 서비스 매우 다양.
자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능이 운영체제의 핵심 서비스.
커널: 운영체제 핵심 서비스 담당하는 부분.
운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스: 사용자 인터페이스.
사용자 인터페이스: 사용자가 컴퓨터와 상호작용할 수 있는 통로.
-그래픽 유저 인터페이스: 윈도우 바탕화면이나 스마트폰 화면처럼 그래픽을 기반으로 컴퓨터와 상호작용.
-커맨드 라인 인터페이스: 명령어 기반으로 컴퓨터와 상호작용.
이중 모드와 시스템 호출
운영체제는 사용자가 실행하는 응용프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호.
운영체제 코드를 실행한다: 응용 프로그램이 자원 접근 위해 운영체제에 도움 요청.
이중모드: 운영체제의 문지기 역할. CPU가 명령어를 실행하는 모드를 크게 구분하는 방식. (사용자 모드, 커널 모드)
사용자 모드
운영체제 서비스를 제공받을 수 없는 실행 모드. 커널 영역의 코드를 실행할 수 없는 모드.
사용자 모드로 실행되는 일반적인 응용 프로그램은 자원 접근 x.
커널 모드
운영체제 서비스를 제공받을 수 있는 실행 모드. 커널 영역의 코드를 실행할 수 있는 모드.
운영체제는 커널 모드로 실행 됨.
사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받으려면 운영체제에 요청을 보내 커널 모드로 전환 필요.
시스템 호출(=시스템 콜): 운영체제 서비스를 제공받기 위한 요청.
사용자 모드로 실행되는 프로그램은 시스템 호출을 통해 커널 모드로 전환해 운영체제 서비스 제공 받을 수 있음.
시스템 호출: 일종의 소프트웨어적 인터럽트.
소프트웨어 인터럽트: 인터럽트는 입출력장치 뿐만 아니라 특정 명령어에 의해 발생.
CPU가 시스템 호출을 처리하는 순서. (인터럽트 처리순서와 유사)
응용 프로그램 실행과정에서 운영체제 서비스들은 매우 빈번하게 이용.
시스템 호출 발생시키고 사용자 모드, 커널모드 오가며 실행.
운영체제의 핵심 서비스
프로세스 관리
프로세스: 실행중인 프로그램. 윈도우의 [작업관리자] -> [프로세스]항목 확인 가능.
컴퓨터를 사용하는 동안 메모리 안에서는 새로운 프로세스 생성. 사용되지 않는 프로세스 메모리에서 삭제.
하나의 CPU는 한 번에 하나의 프로세스만 실행. CPU는 이 프로세스 번갈아 가며 실행.
이 과정 반복.
각 프로세스 상태, 자원, 다양.
운영체제는 다양한 프로세스 관리, 실행 필요.
여러 프로세스가 동시에 실행되는 환경에서는 프로세스 동기화 필수. 교착상태 해결 필요.
자원 접근 및 할당
모든 프로세스는 실행을 위해 자원 필요.
CPU
일반적으로 메모리에는 여러 프로세스 적재.
하나의 CPU는 한 번에 하나의 프로세스만 실행.
CPU 스케줄링: 프로세스 공정하게 CPU를 할당하기 위한 결정.
메모리
운영체제는 새로운 프로세스 적재될 때마다 주소 적재 결정.
입출력 장치
인터럽트 서비스 루틴은 운영체제가 제공하는 기능, 커널 영역. 하드웨어 인터럽트도 마찬가지.
운영체제는 인터럽트를 처리한는 프로그램, 인터럽트 서비스 루틴을 제공함으로써 입출력 작업 수행.
파일 시스템 관리
파일 시스템도 운영체제가 지원하는 핵심 서비스.
대표적인 커널 서비스: 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리
출처