묻공러
'분류 전체보기' 카테고리의 글 목록 (34 Page)

분류 전체보기

CS/[혼자 공부하는] 컴퓨터 구조

3] 명령어

1] 소스 코드와 명령어 (1) 고급언어: 개발자가 이해하기 쉽게 만든 언어 1. 컴파일 언어 2. 인터프리트어 (2) 저급 언어: 컴퓨터가 이해하고 실행하는 언어 1. 기계어: 2진수 or 16진수로 표현된 언어 2. 어셈블리어: 기계어를 읽기 편한 형태로 번역한 저급 언어 (3) 고급언어가 저급언어로 변환될 때 1. 컴파일 방식 (컴파일 언어 > 저급언어): 한 번에 처리하는 방식 2. 인터프리트 방식 (인터프리터 언어 > 저급언어): 한 줄씩 처리하는 방식 2] 명령어의 구조 (1) 명령어는 연산코드(수행할 연산)와 오퍼랜드(연산에 사용될 데이터 혹은 연산에 사용될 데이터가 저장된 위치)로 구성 (2) 오퍼랜드 필드는 데이터보다는 주소를 많이 담고 있는 경우가 많기에 주소필드라고 부름 오퍼랜드가 없..

CS/[혼자 공부하는] 컴퓨터 구조

1] 컴퓨터 구조의 큰그림

1] 컴퓨터가 이해하는 두 가지 정보 - 데이터 0과 1로 이루어진 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 컴퓨터와 주고받는/내부에 저장된 정보를 데이터라 통칭함 - 명령어 컴퓨터는 결국 명령어를 처리하는 기계이며 명령어는 컴퓨터를 실질적으로 움직이는 정보, 데이터는 명령어를 위한 일종의 재료이다 2] 컴퓨터의 네 가지 핵심 부품과 메인보드 그리고 시스템 버스 (1) 메모리: 현재 실행되고 있는 프로그램(프로세스)의 명령어와 데이터를 저장하는 부품 프로그램이 실행되기 위해서는 메모리에 저장되어 있어야 한다 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다 메모리에 저장된 값의 위치는 주소로 알 수 있다 (2) CPU: 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품 ALU..

CS/[널널한 개발자] CS 개론

[자료구조] 자료구조와 알고리즘

# 자료구조 - 자료를 구조화하는 것 - 일정 규칙으로 자료를 나열하거나 정리하는 것 # 알고리즘 - 정해진 규칙들 - 구조화된 자료에서 원하는 것을 빨리 찾아내는 방법 # 자료구조의 종류 1) 선형구조(1차원) 2) 비선형 구조(2차원) # 선형자료구조 1) Stack - 출입구 1 - LIFO(Last In First Out) 구조 - 뒤집기, 되돌아가기 위한 구조 2) Queue - 출입구 2 (양 끝) - FIFO(First In First Out) 구조 - 멀티태스킹, 멀티쓰레드 환경에서 동시다발적으로 연산과 처리를 하기 위해 사용됨 3) Linked List 4) Array # 비선형 자료구조 1) 트리 : 2진 트리 - 자료당 두 개의 위치정보(링크)를 이용해 셋을 하나로 묶는다 - 맨 꼭대..

CS/[널널한 개발자] CS 개론

[운영체제 6] 가상 메모리 소개

# 가상 메모리 시스템 하드디스크를 RAM처럼 사용한다는 의미 모든 메모리 관리 단위는 Page이다 프로세스가 만들어지면 각 프로세스마다 RAM의 공간을 차지하게 되는데 Page 단위 만큼을 프로세스 RAM을 서로 연결시켜 관리하게 된다 만약, A 프로세스로 이미 램의 공간이 부족한 상태에서 B 프로세스가 실행이 되면 기존에 쓰고 있었던 A 프로세스의 RAM의 Page들을 HDD로 보내버리는 행위를 하는데 이를 Page-out(Swap-out) 만약, 다시 A 프로세스를 사용하려고 하면 RAM에 있는 B 프로세스의 Page들을 Page-out(Swap-out)하고 HDD에 있는 A 프로세스의 Page들을 Page-in(Swap-in)함 따라서, 램이 부족하면 프로그램 간 스위칭할 때 하드디스크의 읽기/쓰..

CS/[널널한 개발자] CS 개론

[운영체제 5] User mode와 Kernel mode 그리고 가상화

# OS의 핵심 Kernel 컴퓨터라는 국가의 법은 Kernel로 구현된다 Kernel 영역과 User 영역은 완전히 다른 세상이다 Kernel은 1) I/O 제어 2) 자원관리 3) 접근 통제 를 담당한다 # User mode와 Kernel mode User mode와 Kernel mode를 연결해 주는 Interface가 파일형태로 존재하는데 일반적인 파일이 아닌 Device 파일 형태로 존재한다 # Antivirus Filter에 실시간 감지 엔진이 작동하여 바이러스가 있는지 없는지 Usermode의 Antivirus 프로세스를 통해 확인 후 통제하게 된다 # Virtualization H/W를 S/W화 한 것을 가상화(Virtualization)라고 한다 클라우드 컴퓨팅의 기본적인 원리가 가상화이다

CS/[널널한 개발자] CS 개론

[운영체제 4] 국가와 국민으로 이해하는 컴퓨터

# 국가와 국민으로 이해하기 user 영역의 각 프로세스들의 메모리 공간은 독립적이다 그렇기에 어떤 프로세스가 다른 프로세스를 의도적으로, 실수로 다른 프로세스의 메모리 공간을 침투한다면 커널 영역의 OS가 access violation 오류를 일으키게 된다 (특별하게 Debugger는 다른 프로세스의 메모리 공간에 침투하는 것을 OS가 허용해 준다) 또한, 프로세스들이 동시에 존재하는 것을 멀티태스킹 환경이라고 한다 각 프로세스들은 동시성을 지니고 있고 동시성, 원자성 보장을 받아야 한다

CS/[널널한 개발자] CS 개론

[운영체제 3] 컴퓨터의 구성요소

# 컴퓨터의 구성요소 컴퓨터는 H/W와 S/W로 구성된다 S/W는 Application과 System S/W로 구분된다 가장 대표적인 System S/W는 OS(Operation System)이다 # 프로그램, 프로세스, 스레드 프로그램은 exe파일과 같다 프로그램을 실행하면 프로세스가 생성된다 스레드는 프로세스 속에 존재하는 실행단위이다 스레드는 프로세스에게 할당된 자원을 공유한다 # 용도에 따른 기억공간의 구분 Stack: 각 Thread마다 각 Stack의 공간을 가진다 Heap: 각 프로세스마다 주어진 공유 공간

CS/[널널한 개발자] CS 개론

[운영체제 2] 원자성, 동기화 그리고 데드락

# 원자성과 동기화 동시성이 있을 경우 반드시 충돌을 할 가능성이 있기에 이러한 것을 막기 위해 동기화가 중요하다 그리고 이러한 동기화를 통해 충돌 가능성이 없어진 상태를 원자성이라고 한다 따라서, 원자성 보장을 위해 동기화는 매우 중요하다 # 교착상태(Dead Lock) 동기화를 했음에도 불구하고 예상치 못한 변수나 조건들이 발생하게 되거나 동기화 논리구조의 예외가 발생하여 심각한 논리적 오류가 발생하는 것을 "교착상태(Dead Lock)"라고 한다

CS/[널널한 개발자] CS 개론

[운영체제 1] 동시성과 병렬성

# 동시성 여러 가지 일이 동시에 진행되는 것 # 병렬성 같은 일을 여러 주체가 동시에 진행되는 것 따라서, 동시성 안에 병렬성이 포함된 개념으로 볼 수 있다

CS/[널널한 개발자] CS 개론

[컴퓨터 구조 6] HDD, SSD와 파일 시스템

# HDD의 논리적 구조 HDD와 SSD 모두 Track과 Sector로 관리된다 # 조각 모음의 의미 HDD의 경우, 파일이 저장될 때, 일반적으로 Track이 이어지는 경우보다는 끊어져서 관리가 된다 그렇게 되면 하드디스크의 물리적 회전이 계속 요구되고 입출력 성능이 저하됨 따라서 조각 모음을 통해 파일의 Track을 이어지게 해서 입출력 성능을 높임 최근에는 운영체제가 직접 관리해 줌 SSD의 경우, 디스크가 회전하는 것이 아니라 어느 곳이든 칩으로 접근과 관리를 하게 되니 속도가 매우 빠르고 물리적인 회전이 아닌 칩 자체의 읽기, 쓰기의 성능에 따라 입출력 속도가 결정이 된다 따라서 조각 모음도 의미가 없어지게 됨 # 파일이 저장되는 방법 (파일 시스템) - FAT(File Allocation T..