메모는 간단히렸다.컴퓨터 구조는 크게 두 가지로 나뉜다1\. 컴퓨터가 이해하는 정보 (소프트웨어)2\. 컴퓨터의 4가지 핵심 부품. (하드웨어)컴퓨터는 1과 0으로 된 2진수 만 이해한다.이를 기반으로 한 정보는 두가지가 있다.데이터명령어데이터는 쉽게말해 이미지, 동영
CPU의 구성 보충 cpu의 구성은 크게 세가지로나뉜다. 1편에서 설명했던걸 조금 더 보충해보겠다. ALU(산술논리연산장치) : 레지스터에서 피연산자(데이터)를 받아들이고, 제어장치가 보낸 제어신호(연산자)를 활용해 계산을 마친 뒤, 레지스터에 저장한다. 제어 장치
프로그램은 하드웨어 위에서 돌아간다. 사용자가 이를 전부 관리하면서 프로그램을 실행하기엔 너무나 귀찮고 힘들다! 이를 도와주는것이 운영체제.즉, 컴퓨터 시스템을 편리하게 사용하게 해주고, 하드웨어의 자원을 효율적으로 관리해주는 소프트웨어이다!운영체제는 항상 메모리에 상
실행중인 프로그램 = 프로세스.중요한건 프로세스의 컨텍스트. 프로세스의 컨텍스트엔 아래와 같은 정보들이 담겨있다.cpu의 수행상태 1\. 하드웨어 컨텍스트 a. PC(프로그램 카운터) b. 각종 레지스터프로세스 주소 공간 1\. stack, data, c
부모 프로세스가 자식을 생성자원공유(안 하는 모델이 일반적임)자료구조 중 트리구조를 따름.PCB나 주소공간을 그대로 복사함fork로 복제 후 exec로 다른 프로그램으로 덮어씌움(아닐수도)Copy-On-Write 기법으로 작동될때가 있음=> 쓰기 가 발생하기 전까지 P
CPU를 누구에게 줄것인지 결정하는 것운영체제가 관리하는것이다.nonpreemptive(비선점형) :프로세스가 자진반납. 강제로 탈취xpreemptive(선점형) : 프로세스를 강제로 탈취cpu의 스케줄링은, 여러종류의 프로그램이 섞여있기에 필요하다.cpu만 오랫동안써
데이터를 가져와 연산 하고, 연산 결과를 다시 반환한다.컴퓨터 구조에서 배운 방식을 떠올리면된다.여럿의 프로세스(CPU)가 하나의 저장장치를 공유하면, 문제가 생길수 있다.같은 메모리를 공유하는 멀티 프로세서 시스템공유 메모리를 사용하는 프로세스들커널 내부 데이터를 접
버퍼 : 데이터를 한 곳에서 다른 곳으로 옮길때 임시적으로 사용하는 메모리공간비어있는 버퍼에 공유데이터를 삽입하는 생산자와 꽉찬 버퍼의 데이터를 꺼내 사용하는 소비자가 있다.이 역시 프로세스 동기화에 관한 문제다.생산자가 동시에 한 버퍼에 데이터를 삽입하거나, 소비자
프로세스들이 서로 가진 자원을 기다리며 block된 상태이전에 설명했지만, 데드락을 더 깊게 파헤쳐보자.아주 당연한 조건들이다.매 순간 하나의 프로세스만이 자원 사용 가능(프로세스 동기화 문제 해결법)비선점형. 자원을 빼앗기는 것이 아닌, 자의적으로 내놓는다. 빼앗긴다
프로그램이 컴파일 되면, 주소공간을 할당받는다. 이는 실제 메모리에 올라간것이 아니다.저번에 메모리에서 설명했듯, 물리적으로 바로 올라가는것이 아닌 가상 메모리에 한번 탑재된다.이때 가지는 주소를 Logical address(virtual address)라고 한다.이후
전에 설명했던 동적 메모리 할당 기법인 불연속 할당 기법중 paging이 있었다.단순하게 page table하나만 활용하는 것이 아닌, 내부 테이블과 외부 테이블을 활용하는 Two-level paging이 있었는데, 사실 주소 공간이 커지면 테이블을 더 많이 만들 수
이제야 가상메모리에 대해 다룬다. 전 시간에 배운 dynamic memory management나 dynamic memory allowcation은 하드웨어가 처리해줬다. 이젠 운영체제가 메모리 관리를 어떻게 하는지 알아보겠다.가상메모리는 physical memory(
A named collection of related information.정보와 관련된 컬렉션에 이름을 붙인게 file이다.사용자 입장에서 유의미하게 상호작용 하는게 파일인듯!보조기억 장치에 저장된다OS가 저장장치들을 File단위로 볼 수있게 해준다.create, w
우리가 메모리를 어떻게 할당할 것인지 정하던 dynamic memory allocation처럼 file data도 디스크에 어떻게 할당할 것인지 정해야한다. 이를 대표하는 방법 세가지를 소개하겠다.참고로 디스크는 동일한 크기의 Block 단위로 나눠서 관리한다. 마치
주소창에 예를들어 www.naver.com을 입력하게 된다면, 어떤일이 벌어지는가?면접의 단골 질문이지만, 네트워크를 정확히 모르던 나는 어디서 주워들은 지식과 내가 아는 지식을 짬뽕 할ㄹ 수 밖에 없었다.이 책에서는 이렇게 표현한다. 책을 보면서 적는게 아니라 명확하
프로토콜은 스택은 OS단에서 지원하는 네트워크 제어용 소프트웨어라고 보면 된다어떠한 애플리케이션에서 송신까지의 과정은 이렇다.1.애플리케이션에서 socket에 요청(리졸버)2.socket이 프로토콜 스택에 요청3.프로토콜 스택(TCP,UDP,IP)에서 랜 드라이버로.4
전편에선 socket과 프로토콜 스택의 동작에 대해 알아봤다. 이 포스팅에선 프로토콜 스택 내부에 있는 IP부분에 대해 자세히 알아보겠음패킷은 기본적으로 헤더와 데이터로 이루어져 있다.헤더 : 제어정보가 적혀있음. 데이터가 화물이라면 헤더는 송장임데이터 : 데이터TCP
패킷 중계동작은 헤더에 기록된 제어정보와 중계장치 내부에 있는 중계 대상을 등록한 표로 목적지를 판단하여 움직인다. 따라서 패킷 내부의 데이터는 중계에 아무런 영향을 끼치지 않는다. MAC이나 IP헤더의 관점에서 보면 TCP헤더부분도 결국 데이터.PHY에서 전기신호로
통신사의 라우터는 가정에서 사용하는 소형이 아니라 적개는 수십개 많게는 수백개까지 연결 가능하다.따라서 라우터의 규모도 다르고, 연결하는 부분도 다르다. 지금까지 배운 가정용 말고 통신사에서 사용하는 걸 배워보자.우리가 배울거 미리 요약.ADSL 기술을 이용한 액세스
예전엔 사내 LAN에 바로설치했었음. 하지만 문제점이 있었다.서버뿐이 아니라 클라이언트모두에게 글로벌IP를 할당함.공격에 취약함.따라서 중간에 방화벽을 세우고, 인가한 패킷만 들어오게 하는 방식으로 운영.요즘은 데이터 센터에 서버를 세우는 방식도 있음.NOC에 직접접속
서버는 복수의 클라이언트와 상호작용함. 하나의 프로그램으로 상대하긴 어려움멀티 스레드와 멀티 프로세스기능을 사용해 다수의 클라이언트를 상대.소켓 접속에 성공하면 프로세스/스레드를 생성해서 대응.TCP의 방식은 사실 좌우 대칭. 서버, 클라이언트를 나눌 필요가 없음.다만
DB에 대해서 배워보자(1)
데이터베이스 시스템, 개념적 모델링에 대해 알아보자
데이터 베이스 설계 단계는 총 5단계로 분류된다고 이전 강의에서 학습하였다.5단계중 중요도가 가장 높은 1~3단계를 실습해보겠다!사용자의 요구사항을 수집하고 분석하여 요구 사항 명세서를 작성한다.예를들어 온라인 쇼핑몰을 제작한다고 가정해보자. 요구사항이 필요하니 예제로
관계 데이터 모델의 기본 용어를 익힌다.튜플, 릴레이션, 속성, 도메인, 널, 차수, 카디널리티, 키(유일성, 최소성)릴레이션을 구성하는 요소와 특성을 이해한다.릴레이션에서 키의 역할과 종류를 알아본다.무결성 제약의 의미와 필요성을 이해한다.관계 데이터 모델의 기본용어
정규화는 Redux를 배우며 알게된 상태 정규화를 통해 미약하게나마 알게되었다.복잡한 상태(JSON)의 중첩을 풀고, 구조를 단순하게 만드는 행위였다.이때 클라이언트측에서 상태라고 부르는 값은 사실 백엔드측에서 DB를 순회한 후, 데이터를 Http 프로토콜로 넘겨준 값
이전시간에 언급한 개념은 넘어가겠다. 추가로 설명해야할 부분만 함!정규화는 무손실 분해(nonloss decomposition)되어야 한다. 즉, 분해 전 릴레이션으로 되돌릴 수 있어야한다. 분해로 인한 정보의 손실이 발생한다면, 정규화가 아니다.릴레이션이 얼마나 정규
DB에서 원하는 데이터를 뽑아낸다 릴레이션에서 필요한 데이터를 얻는 행위가 관계데이터 연산이다. 프론트엔드에서 API로 받아온 데이터를 가공하는 과정과 유사하다. 가령 api/member/loevray엔드포인트로 요청을 보내면, 아래의 JSON이 클라이언트로 넘어온
관계 데이터베이스를 위한 표준 질의어(query lang)다.세가지 종류로 나뉜다.DDL : 테이블 생성,변경,제거(CREATE, ALTER, DROP)기능 제공DML : 테이블에 새 데이터 삽입(INSERT) 및 저장된 데이터 수정-삭제-검색(SELECT,UPDATE
SQL의 데이터 조작 기능을 알아보았다
싱글톤 패턴을 알아보았습니다. 모듈도 살짝?
팩토리 메서드 패턴을 알아보았습니다