~섹션2 유닛7
+강의 정리와 개인적인 지식, 의견 또한 포함되어 있습니다.
강의의 자세한 내용은 포함하지 않고 있습니다.
[섹션1 - 개요]
컴퓨터는 운영체제가 있어야 추가 기능을 사용 가능하다.
운영체제의 일
프로세스 관리
메모리 관리
하드웨어 관리_사용자의 제한
파일 시스템 관리
운영체제의 구조
커널
프로세스, 메모리, 저장장치 관리
사용자는 인터페이스를 통해 접근(GUI_그래픽 window, mac, CLI_텍스트 명령)
어플리케이션은 시스템 콜을 통해 커널에 접근
컴퓨터 하드웨어와 구조
폰 노이만
CPU - RAM
프로그램 내장방식 - RAM에 올려 CPU에서 처리
메인보드 : CPU, 메모리, 하드디스크, 그래픽카드, 출력장치(모니터, 키보드, 마우스, 스피커..)
CPU(Central Processing Unit) 중앙처리장치
산술논리 연산장치 - CPU의 데이터 연산 담
제어장치 - 모든 장치 동작 지시, 제어
레지스터 - CPU의 계산 임시 보관 장치
메모리
RAM
저장된 위치와 상관 없이 읽는 속도 동일
메인 메모리, 전력 끊기면 데이터 잃음
ROM
데이터 수정 불가
주로 컴퓨터 부팅 관련 바이오스 저장
부팅과정
ROM의 BIOS - 하드웨어 이상 체크
하드디스크의 부트로더 실행
운영체제 선택
메모리에 불러오기
운영체제가 관리 시작
폴링 방식
입출력 작업 입력
CPU가 입출력 관리자에 명령
CPU가 해당 작업 주기적으로 확인(폴링 방식)
-성능이 좋지 못함
-이 단점을 해결 것이 인터럽트
인터럽트
CPU가 입출력 관리자에 명령
CPU는 다른 작업
입출력이 완료되면 입출력 관리자가 CPU에 전달
CPU는 인터럽트 서비스 루틴(ISR)을 실행시켜 작업 완료
비동기적
-하드웨어방식
-소프트웨어방식
[섹션2 - 프로세스와 쓰레드]
프로그램
저장장치에 저장된 명령문의 집합체
앱, 운영체제에서는 .exe 파일
하드디스크만 사용하는 수동적 존재
프로세스
실행중인 프로그램
메모리에 올라간 프로그램
메모리, CPU, 입출력 사용 능동적 존재
Code 영역 - 실행 코드
Data 영역 - 전역 변수, static 변수 저장
Stack 영역 - 지역변수, 함수 호출 시 주소 저장
Heap 영역 - 동적 메모리 할당
C언어는 컴파일 언어.
소스파일을 프로그램으로 컴파일하는 과정 :
file.c → 전처리기(매크로 처리) → file.i →컴파일러(컴파일) → file.s → 어셈블러(어셈블리어→기계어) → file.o(기계어) → 링커(링킹_라이브러리, 소스코드 연결) → file.exe 프로그램 생성
file.exe 프로그램을 실행하면, RAM에 올라가며 프로세스가 됨
이때부터 운영체제가 관리.
CPU는 기계어 실행.
CPU의 제어장치가 초기화된 변수를 메모리에 저장. → edx, eax 레지스터로 가져와 저장.
제어장치의 변수 사용 명령 → 산술논리연산장치가 연산 후 eax 레지스터에 저장
→ 제어장치가 eax 레지스터 저장된 값을 메모리에 저장.
오늘날의 OS는 멀티프로그래밍과 멀티프로세싱 공존.
_과거에는 메모리가 작아 멀티프로그래밍 불가했음!
_유니프로그래밍을 사용하며 멀티프로세싱.
_스와핑(Swapping)
메모리에 프로세스를 올림 → CPU로 처리 → 프로세스를 다른 저장장치에 저장 → 다른 저장장치에 있던 프로세스를 메모리에 올림 → CPU로 처리.
멀티프로그래밍
여러 개의 프로세스가 올라옴.
멀티프로세싱
시분할 처리로 CPU가 각각의 프로세스를 짧은 시간 동안 교대로 실행.
+추가 중....🥲
'개발 스터디 > CS' 카테고리의 다른 글
[스터디] 인프런 CS 전공지식 스터디 2기_자료구조와 알고리즘(1주차) 발자국 (0) | 2024.10.06 |
---|