일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그래프
- static
- dfs
- CPU 스케줄링
- 프로그래머스
- 컴퓨터구조
- 한빛미디어
- 138477
- 컴퓨터 구조
- 독학
- 혼자 공부하는
- C++
- 스레드
- 입출력장치
- Transform
- 장치컨트롤러
- 보조기억장치
- DirectX
- 운영체제
- 렌더링 파이프라인
- BFS
- 인터럽트
- 멀티스레드
- 혼자공부하는
- 지역변수
- 131701
- 풀이
- DDR SDRAM
- 프로세스
- 코딩테스트
- Today
- Total
목록컴퓨터구조 (24)
빼미의 개발일기

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고, 추가적인 부분을 찾아 정리한 내용입니다. 교착상태는 무엇이며, 발생 원인은 무엇인가? ● 고전적 동기화 문제 (철학자의 만찬 문제) - 각 좌석에 앉은 철학자들이 아래의 과정을 거치고 식사를 한다고 가정한다. 계속 생각하다 왼쪽 포크가 사용 가능하면 집어든다. 계속 생각하다 오른쪽 포크가 사용 가능하면 집어든다. 왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 한다. 식사 시간이 끝나면 오른쪽 포크를 내려놓는다 오른쪽 포크를 내려놓으면 왼쪽 포크를 내려놓는다. 위 과정을 반복한다. - 위 과정에서 모든 철학자가 왼쪽 포크를 집었거나, 서로 눈치보며 기다리기만 하게 된다면 그 누구도 식사를 할 수 없고 그 이상 진행할 수..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고, 추가적인 부분을 찾아 정리한 내용입니다. 운영체제의 프로세스 관리 서비스 중 가장 중요한 두 가지는 스케줄링과 동기화이다. 그렇다면 동기화란 무엇일까?? ● 동기화 (Synchronization) - 멀티 프로세스 혹은 멀티 스레드가 공유하는 자원의 일관성을 유지하는 것 - 두 개 이상의 프로세스(혹은 스레드)가 공유 자원(Shared Data)에 동시 접근하면 데이터 불일치가 발생할 수 있기 때문에 데이터 일관성을 유지하기 위한 매커니즘이다. ● 고전적 동기화 문제 (Classical Problems of Synchronization) - 동기화와 관련된 유명한 고전적 문제로 3가지의 경우가 있다. 1) 생산자 - 소비자 문제 ..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. CPU 스케줄링 알고리즘에는 무엇이 있는가? ※ 스케줄링 알고리즘은 종류가 매우 다양하며 운영체제마다 사용하는 알고리즘도 제각각 다르다. 그중 책에선 7가지만 다룬다. ● 선입 선처리 스케줄링 (FCFS 스케줄링 : First Come First Served Scheduling) - 준비 큐에 삽입된 순서대로 프로세스를 처리하는 비선점형 스케줄링 방식 - 가끔 프로세스들이 기다리는 시간이 길어질 수 있다는 단점이 있다. ex) CPU 이용시간이 17ms인 프로세스 A, 5ms 프로세스 B, 2ms 프로세스 C가 있고, A->B->C의 순서대로 준비 큐에 들어갔다고 했을 때 프로세스 C는 2ms를 이용하기 위해 2..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. 운영체제는 CPU를 어떻게 프로세스에 배분하는가? ● CPU 스케줄링 : 운영체제에서 프로세스들에게 CPU 자원을 합당하게 배분하는 과정 ○ 프로세스 우선순위 - 프로세스는 각자의 PCB에 우선순위를 가지고 있고, 보통 입출력 작업이 많은 프로세스가 우선순위가 높은 편이다. - 프로세스는 프로세스 상태의 실행상태와 대기상태를 반복하며 실행하게 되는데, 실행상태동안 CPU를 사용하는 구간을 CPU 버스트(CPU Burst), 입출력 완료까지 대기상태로 기다리는 구간을 입출력 버스트(I/O Burst)라고 한다. - 입출력 작업이 많은 프로세스를 입출력 집중 프로세스(I/O Bound Process), CPU 작업이..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. 스레드의 의미와 멀티스레드, 멀티프로세스의 차이는 무엇인가? ● 스레드(Thread) : 프로세스를 구성하는 실행의 흐름 단위 ※ 12강. 빠른 CPU를 위한 설계방법에서 나온 소프트웨어적 스레드를 다룬다. - 하나의 프로세스는 하나 이상 스레드를 가질 수 있으며, 스레드를 이용하면 하나의 프로세스에서 여러 부분을 동시에 실행 할 수 있다. - 프로그래밍을 통해 소프트웨어에서 동시에 여러 스레드를 처리 할 수 있도록 만들 수도 있다. - 스레드는 프로세스 내에서 각기 다른 스레드 ID, 프로그램 카운터 값을 비롯한 레지스터 값, 스택을 가지고 있다. - 프로세스의 여러 스레드들은 실행에 필요한 최소한의 정보(레지..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. 프로세스의 상태가 가지는 계층 구조는 무엇인가? ● 프로세스 상태 - 여러 프로세스들이 빠르게 번갈아 가며 실행될 때 하나의 프로세스는 여러 상태를 거치며 실행되는데 운영체제는 프로세스의 상태를 PCB를 통해 인식하고 관리한다. 생성 상태(New) : 프로세스를 생성 중인 상태. 막 메모리에 적재되어 PCB를 할당받은 상태이다. 실행할 준비가 완료된 프로세스는 곧바로 실행되지 않고 준비 상태가 되어 PCB의 할당을 기다린다. 준비 상태(Ready) : CPU를 할당받을 준비가 되어 자신의 차례를 기다리는 상태. 이후 준비 상태인 프로세스가 실행 상태로 전환되는 것을 디스패치(Dispatch)라고 한다. 실행 상태..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. 운영체제의 핵심 서비스인 프로세스 관리는 무엇이고, 실행되는 과정은 어떻게 되는가? - '실행되는 프로그램'을 프로세스(Process)라고 하는데, 사용자가 볼 수 있는 공간에서 실행되는 프로세스를 포그라운드 프로세스(Foreground Process), 볼수 없는 공간에서 실행되는 프로세스를 백그라운드 프로세스(Background Process)라고 한다. - 사용자와 상호작용하지 않고 정해진 일을 수행하는 백그라운드 프로세스를 유닉스 체계 운영체제에선 데몬(Daemon), 윈도우 운영체제에선 서비스(Service)라고 한다. - CPU 자원은 한정되어 있고, 모든 프로세스들은 차례대로 돌아가며 한정된 시간만큼..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. ● 운영체제 - CPU, 메모리, 보조기억장치, 입출력장치 등 컴퓨터의 부품들을 시스템 자원, 줄여서 자원이라고 하고, 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램을 운영체제(Operating System)이라고 한다. - 운영체제 또한 프로그램이기에 메모리에 적재되어야 하지만, 운영체제는 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역(Kernel Space)에 따로 적재되어 실행된다. (커널 영역을 제외한 나머지 영역을 사용자 영역(User Space)라고 함) - 운영체제는 응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당하고, 응용 프로그..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다. - 장치 컨트롤러와 CPU가 정보를 주고 받는 방식은 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력 3가지의 방법이 있다. ● 프로그램 입출력(programmed I/O) : 기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법. CPU가 프로그램 속 명령어를 실행할때 입출력 명령어를 만나면 CPU는 입출력장치에 연결된 장치 컨트롤러와 상호작용하여 입출력 작업을 수행한다. - 하드 디스크의 장치 컨트롤러로 예시 1. CPU는 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령을 보낸다. 2. 장치 컨트롤러는 하드 디스크 상태를 확인. 준비된 상태라면 상태 레지스터에 준비되었다고 표시한다. 3. CPU..

이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다.장치 컨트롤러- 장치 컨트롤러는 종류에 따라, 종류의 제조사 마다 사양이 다르기 때문에 속도, 데이터 전송 형식도 다양해서 규격화를 하기 어렵다. 또한 CPU와 메모리에 비해 데이터 전송률이 낮아 CPU와 메모리처럼 컴퓨터에 직접 연결 (메인보드 내에 설치) 되지 않고 장치 컨트롤러 (Device Controller)라는 하드웨어를 통해 연결된다. - 장치 컨트롤러는 입출력제어기 (I/O Controller) , 입출력 모듈 (I/O Module) 등으로도 불린다.- 데이터 전송률이 CPU와 입출력 장치 간의 차이가 있기 때문에 데이터 버퍼링(Data Buffering)을 통해 전송률을 비슷하게 맞춘다. - 장치 ..