프로그래밍은 글쓰기이다.어떤 일의 진행순서를 정하는 것이 프로그래밍이다.다른 말로 일하는 절차에 대한 글쓰기다.글로 작성한 '해야 할 일'을 정한 순서대로 수행하는 것을 '실행'이라 한다.모든 실행은 고유한 흐름을 갖는다.프로그램의 목표는 근본적으로 '자동화'에 있다. 절차적 글쓰기조건 → 조건에 대해 분석 → 분석에 대한 절차를 생각 → 절차를 문서로 기술 → 실행식빵 + 나이프 + 버터를 가지고 빵을 만들때 순서식빵 한조각을 접시에 올려 놓는다.버터통의 뚜껑을 연다.손으로 나이프를 잡는다.나이프를 버터통에 넣고 버터를 퍼온다.나이프에 묻은 버터를 식빵의 윗면에 퍼바른다. 프로그램을 잘 작성하고 싶다면?선형자료 정렬 규칙(프로그램)을 '글로' 써본다.자신이 좋아하는 게임을 프로그램으로 작성해본다...
가상 메모리 시스템(1)Virtual ≒ Logical = S/W → 소프트웨어적으로 메모리를 구성 = 가상 메모리가상 메모리의 주소 공간은 페이지(Page)라는 단위로 일정 크기 분할되어 있다.Page 라는 조각 단위를 HDD와 RAM 사이를 왔다갔다 하면서 공간 이동 → PagingPage = 약 4KB Paging(페이징) 예시RAM(8GB) = 10개 프로그램 실행 가능필요에 의해 15개 프로그램을 실행해야 하는 경우HDD 영역의 일부 용량을 가져와서 RAM인것처럼 사용한다.속도는 느려지지만 15개 프로그램이 실행된다. 가상 메모리 시스템(2)운영체제에서 프로세스가 실행되는 경우, 메모리 공간을 할당해준다. = VMS(Virtual Memory Space)가상 메모리를 사용하게 되면 RAM이 부..
국가와 국민으로 이해하기컴퓨터 = 국가국가는 영토, 정부, 민간 3가지로 구성된다.영토가 있어야 정부가 존재할 수 있으며, 정부가 있어야 국민이 존재할 수 있다. (존립 기반 = 전제 조건)영토 = H/W = CPU+RAM+DISK 등정부,민간 = S/W 정부 = System(OS) → OS의 핵심 Kernel (접근 제어)민간 = Application → 프로그램 실행 → Process (메모리 공간을 개별로 소유)프로세스끼리 서로 침범해서는 안되며, B프로세스가 A프로세스에 침범 시 OS가 접근 제어한다.여러 개 프로세스가 동시에 존재 = 멀티태스킹 환경 (독립성, 원자성 보장)검찰, 경찰 = 디버거 → 다른 프로세스의 메모리를 볼 수 있다. (OS에서 권한 허용) OS의 핵심 Kernel컴퓨터라는..
컴퓨터의 구성 요소Computer = H/W + S/WS/W는 Applicaition과 System S/W로 구분된다.가장 대표적인 System S/W는 OS(Operating System)이다. 프로그램, 프로세스, 스레드프로그램은 설치하는 것이다. → 프로그램 = DISK 안에 파일로 저장되어 있다.설치된 프로그램을 실행하면 프로세스가 생성된다. → 프로세스 = 실행되고 있는 프로그램프로세스 = 파일로 되어 있는 프로그램의 일부가 메모리에 적재된다.스레드는 프로세스 속에 존재하는 실행 단위이다.스레드는 프로세스에게 할당된 자원을 공유한다. → 할당된 메모리를 공유프로세스는 최소 1개의 스레드를 갖는다.컴퓨터라는 세상에서 '나'는 프로세스라는 모습으로 존재한다.Shell = Window 탐색기 = 나..
원자성(Atomicity)의 의미사전적 의미: 어떤 것이 더 이상 쪼개질 수 없는 성질컴퓨터 과학에서 사용되는 의미: 어떠한 작업이 실행될 때 언제나 완전하게 진행되어 종료되거나, 그럴 수 없는 경우 실행을 하지 않는 경우를 의미 원자성이란?원자성을 설명할때 같이 나오는 단어가 동시성이다.동시성이란? A와 B라는 일이 동시에 발생하는 것으로, 이때 A와 B가 일을 처리하기 위해 어떤 요소에 동시에 접근하는 과정에서 A가 해당 요소를 먼저 선점한 경우, A가 해당 요소에서 일을 다 처리할 때 까지 방해받지 않고 일을 처리하는 것을 원자성이 보장된다고 한다. 원자성을 이해하기 위해 사람이 화장실을 가서 볼일 보는 행위의 순서를 나열한다.우리 몸에서 화장실을 가고 싶어 하는 생체 신호를 받는다. (시작)화장실..
동시성(Concurrency)이란?여러 가지 일이 동시에 진행되는 것(동시에 처리하는 것처럼 보이는 것)밥 먹으면서 스마트 폰을 보는 것밥 먹는것과 스마트 폰을 보는 것은 별개의 행동이지만, 동시에 행동이 가능하다.컴퓨터로 유튜브를 시청하면서 영화 다운로드 받기 → 동시성이 있다. 병렬성(Parallelism)이란?같은 일을 여러 주체가 함께 동시에 진행하는 것(실제로 동시에 여러 작업이 처리되는 것)창고에 여러 사람이 박스를 같이 옮기는 것병렬성은 동시성에 포함되는 개념이다.코인 채굴 시 GPU가 병렬 연산하는 것 동시성 vs 병렬성구분동시성병렬성개념동시에 처리하는 것처럼 보이는 것실제로 동시에 여러 작업이 처리되는 것사용 코어 수싱글 코어멀티 코어동작 방식싱글 코어에서 멀티 쓰레드를 동작시키는 방..