2-컴퓨터의 구조와 성능 향상

컴퓨터의 기본 구성 하드웨어의 구성 CPU: 명령어를 해석하여 실행하는 장치다. 메모리: 작업에 필요한 프로그램과 데이터를 저장하는 장소로, 바이트 단위로 분할되어 주소로 구분한다. 입력장치: 외부의 데이터를 컴퓨터에 입력하는 장치다. 천공카드, 키보드, 마우스, 스캐너 등 출력장치: 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력하는 장치다. 프린터, 모니터, 스피커 저장장치: 메모리보다 느리지면 저렴하고 용량이 크며, 전원이 꺼져도 데이터가 영구히 저장되는 장치다. 버스: 컴퓨터 부품들이 연결하는 통로. 일정한 규칙에 따라 각 장치에 데이터를 전송하는 역할을 한다....

2024-09-15 · 11 min · 2334 words

1-운영체제의 개요

운영체제 소개 운영체제의 역할 자원 관리: 컴퓨터 자원(키보드, 네트워크 카드, 사운드 카드 등)을 요청한 애플리케이션들에게 적절한 순서로 자원을 배분하고 적절한 시점에 자원을 회수한다. 자원 보호: 악의적이거나 미숙한 애플리케이션, 사용자으로부터 자원을 보호하는 역할을 한다. 다른 영역의 자원을 침범하여 데이터를 수정하거나 삭제를 막아준다. 하드웨어 인터페이스 제공: CPU, 메모리, 키보드, 마우스와 같은 하드웨어가 제조사에 신경쓸 필요없이 사용할 수 있도록 하드웨어 인터페이스를 제공한다. 하드웨어 인터페이스 지원은 드라이버를 설치해야 가능한데, 대부분의 드라이버는 운영체제를 설치할 때 자동으로 설치된다....

2024-09-15 · 6 min · 1139 words

9-가상 메모리 관리

요구 페이징 요구 페이징 개요 요구 페이징: 프로세스가 요구할 때 해당 페이지를 메모리로 가져오는 방식. 미리 가져오기: 앞으로 필요할 것이라고 예상되는 페이지를 미리 가져오는 방식. 요구 페이지 장점 메모리를 효율적으로 관리할 수 있다. 모든 페이지를 메모리로 가져올 필요가 없기 때문에 응답 속도가 빠르다. 페이지 테이블 엔트리의 구조 PTE에는 페이지 번호(주소 영역), 프레임 번호 뿐만 아니라, 플래그 비트가 존재한다. 플래그 비트에는 아래와 같은 비트들이 있다. 접근 비트(access bit): 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트....

2024-09-15 · 5 min · 917 words

8-가상 메모리의 기초

가상 메모리의 개요 가상 메모리 시스템 가상 메모리(virtual memory): 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술. 가상 메모리 시스템의 모든 프로세스는 물리 메모리와 별개로 0번지부터 시작하는 연속된 메모리 공간을 가진다. 논리 주소 vs 가상 주소 논리 주소는 물리 메모리에 존재하는 위치의 주소를 프로세스 관점에서 지정하는 방식이다. 가상 주소는 물리 메모리 공간이 아닌 가상의 주소 공간을 가진다. 가상 메모리에서 메모리 관리자가 사용할 수 있는 메모리의 전체 크기는 물리 메모리와 스왑 영역을 합한 크기다....

2024-09-15 · 6 min · 1097 words

7-물리 메모리 관리

메모리 관리의 개요 메모리 관리의 복잡성 메모리의 구조는 1B 크기로 나뉜다. 1B로 나뉜 각 영역은 메모리 주소로 구분하는데 보통 0번지부터 시작한다. CPU는 메모리에 있는 내용을 가져오거나 작업 결과를 메모리에 저장하기 위해 메모리 주소 레지스터(MAR)를 사용한다. 폰노이만 구조의 컴퓨터에서 메모리는 유일한 작업 공간이며 모든 프로그램이 메로리에 올라와야 실행이 가능하다. 운영체제도 메모리에 올라와야 실행할 수 있다. 운영체제를 비롯해 여러 작업을 동시에 처리하는 복잡한 메모리 관리는 메모리 관리 시스템(Memory Management System, MMS)이 담당한다. 메모리 관리의 이중성 메모리 관리의 이중성: 프로세스 입장에서 작업의 편리함과 관리자 입장에서 관리의 편리함이 충돌을 일으키는 것 소스코드의 번역과 실행 저급 언어: 기계어와 어셈블리어같이 컴퓨터의 동작을 가장 직접적으로 표현한 언어...

2024-09-15 · 8 min · 1574 words

6-교착 상태

교착 상태의 개요 교착 상태의 정의 교착 상태: 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태. 교착 상태 vs 아사 상태: 아사 상태는 운영체제가 잘못된 정책을 사용하여 특정 프로세스 작업이 지연되는 문제고, 교착 상태는 여러 프로세스가 작업을 진행하다 자연적으로 발생하는 문제다. 교착 상태는 시스템 자원, 공유 변수(또는 파일), 응용 프로그램 등을 사용할 떄 발생할 수 있다. 자원 할당 그래프 자원 할당 그래프: 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지 방향성이 있는 그래프로 표현한 것이다....

2024-09-15 · 7 min · 1367 words

5-프로세스 동기화

프로세스 간 통신 프로세스 간 통신의 개념 프로세스 내부 데이터 통신: 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신. 프로세스 내부의 스레드는 전역 변수나 파일을 이용하여 데이터를 주고 받는다. 프로세스 간 데이터 통신: 같은 컴퓨터에 있는 여러 프로세스끼리의 통신. 공용 파일 또는 운영체제가 제공하는 파이프를 사용하여 통신한다. 네트워크를 이용한 데이터 통신: 여러 컴퓨터가 네트워크로 연결되어 있을 때의 통신. 프로세스가 소켓을 이용하여 데이터를 주고받는다. 💡 같은 컴퓨터에 있는 프로세스끼리도 소켓을 이용하여 통신할 수 있다....

2024-09-15 · 8 min · 1625 words

4-CPU 스케줄링

스케줄링의 개요 스케줄링의 단계 CPU 스케줄러: 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일을 한다. 고수준 스케줄링 장기 스케줄링, 작업 스케줄링이라고도 한다. 전체 시스템의 부하를 고려하여 작업을 시작할지 말지를 결정한다. 이 결정에 따라 시스템의 전체 프로세스 수가 결정되는데 이를 멀티프로그래밍 정도(degree of multiprogramming)라고한다. 중간 수준 스케줄링 시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보낸다. 저수준 스케줄링 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정한다....

2024-09-15 · 10 min · 2055 words

3-프로세스와 스레드

프로세스의 개요 프로세스의 개념 프로그램: 저장장치에 저장되어 있는 정적인 상태. 프로세스: 실행을 위해 메모리에 올라온 동적인 상태. 컴퓨터 시스템의 작업 단위로 태스크라고도 부른다. 프로그램에서 프로세스로 전환 프로그램을 실행시키면 프로그램을 메모리의 적당한 위치로 가져온다. 그와 동시에 프로세스를 처리하는 데 필요한 다양한 정보가 들어있는 프로세스 제어 블록(Process Control Block, PCB)을 만든다. 프로세스 제어 블록에는 있는 다양한 정보 중 대표적인 적인 것은 세가지다. 프로세스 구분자(Process IDentification, PID): 메모리의 프로세스를 구분하는 구분자다. 메모리 관련 정보: 프로세스가 메모리의 어디에 저장되어 있는지 위치 정보가 담겨있다....

2024-09-15 · 11 min · 2245 words