스레드의 동작 원리 멀티스레드, 싱글스레드라고 부르며 작업을 동시에 처리하는 기술이라고만 알고 있는 스레드에 대해 조금 더 알아보자. 우선 단일 코어 CPU가 달린 컴퓨터가 있다고 생각하자. 이런 환경에서 프로세스나 여러 스레드가 동시에 실행될 수 있을까? 만약 A 작업과 B 작업을 동시에 진행시킨다면 어떻게 처리할까. 우선 사람이라면 보통 작업의 순서가 정해져있지 않는 이상 하나의 작업을 완료하고 다른 작업을 진행할 것이다. 하지만 우리가 다루는 컴퓨터는 사람과 동일하게 생각하지 않는다. 컴퓨터는 하나의 작업을 하면서 여유가 생기는 찰나의 순간 다른 작업을 진행하려 한다. 즉, 여러 프로세스와 스레드들을 동시에 실행하는 운영체제는 일정 시간마다 번갈아가며 스레드들을 실행한다. 이렇게 스레드를 변경하며 ..
계층구조의 개념 "CPU 혼자 모든 것을 다 하기엔 비용이 너무 크니, 각자 용도에 맞게 저장장치들을 함께 효율적으로 사용하자." CPU는 컴퓨터의 속도를 결정하기에 가장 중요한 요소로 선정되기도 한다. 하지만 CPU가 아무리 빠르더라도 기억장치가 느리다면, CPU는 명령어나 데이터를 액세스하는 과정에서 많은 시간을 기다려야한다. 이렇게 속도로 CPU를 따라올 수 없는 보조저장장치들은 거대한 용량과 영구저장 능력이라는 아주 큰 메디트가 있지만 그로인해 대부분 각 장치가 개별 기계장치를 포함하기에 액세스 속도가 CPU에 비해 현저히 떨어진다. 이처럼 기억장치들은 유형에 따라 기능, 속도, 용량, 가격이 천차만별로 차이가 나고 각자 서로 용도가 다르기에 필요에 따라 적절한 시간, 위치에 사용되어야한다. 메모..
CPU와 메모리 및 I/O 장치들의 상호 작용 시스템 버스 (System Bus) CPU와 시스템 내 다른 요소들의 정보 교환 통로로 시스템 버스(System Bus)가 사용된다. 시스템 버스는 3가지 종류로 하위 분류된다. 주소 버스 (Address Bus) CPU 외부에 발생하는 주소 정보를 전송하는 신호 선들의 집합이다. 메모리의 주소나 I/O Unit의 포트 번호를 전달한다. CPU와 Memory는 단방향으로 데이터 전달이 가능하며 주소 전달은 CPU에서 메모리로만 가능하다. CPU, Memory는 I/O Unit과 양방향으로 데이터 전달이 가능하다. 주소 선들의 수는 CPU와 접속될 수 있는 최대 메모리(Memory) 용량이 결정한다. CPU가 발생하는 주소 비트들의 수는 주소 버스의 폭(wid..
- Total
- Today
- Yesterday
- 입출력
- CPU
- 알고리즘
- 명령어
- 포인터
- 할당
- 상속
- 레지스터
- dynamic_cast
- New
- 컴파일
- thread
- static_cast
- 게임수학
- 멀티스레드
- 운영체제
- 구조
- malloc
- 백준
- 수학
- 함수
- c++
- const
- 인터럽트
- 크기
- 프로세스
- 초기화
- 스레드
- 클래스
- 메모리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |