본문 바로가기

CS21

DNS record & CNAME 학습 내용 > https://opentutorials.org/course/3276/20313 dns4u.ga 라는 도메인을 가진 상태에서, 52.231.13.22 를 dns4u.ga 로 연결하게 하고 싶다. 그래서 등록대행자에서 이를 등록한다. 이때 등록대행자는 cloudflare 와 같은 서비스이다. DNS record 란, 도메인에 대한 IP 주소가 기록되어 있는 것이다. 다시말해, dns4u.ga 의 관리 네임서버는 NS ns01.freenon.com nslookup trevari.co.kr https://en.wikipedia.org/wiki/List_of_DNS_record_types A 와 CNAME 의 차이점은 A 는 IP 주소를 맵핑하는 것 CNAME 도메인 도메인을 맵핑하는 것 2021. 11. 13.
List, Dictionary 활용 잘하기 파이썬은 자바와 달리 유연한 개발을 할수 있게 해준다. 대표적으로 List의 슬라이싱, collections 패키지의 depue, defaultdict, Counter 등. 유연한 개발을 하기 위한 도구를 학습을 해보자. 리스트 아래와 같은 리스트를 선언할 수 있다. a = list() len(a) - 전체 요소 개수 리턴 a[i] - 인덱스 i의 요소 a[i:j] - i부터 j까지 슬라이스의 길이만큼 k개의 요소 가져온다. **이때 주의해야 될 점은 i 인덱스부터 j-1 까지의 인덱스를 가져온다. elem in a - elem 요소가 존재하는지 확인한다. 처음부터 순차 탐색 a.count(elem) - elem 요소의 개수를 리턴 a.index(elem) - elem 요소의 인덱스를 리턴 a.appen.. 2021. 2. 5.
HTTP에서 HTTPS로, 그렇다면 왜 HTTPS일까? HTTP는 우리에게 친숙하다. 개발자이든, 아니든 언젠가 한번쯤은 들어봤을 법한 용어라고 생각합니다. 왜냐하면, 지금 이곳을 접속했을때, 변하는 URL(URL은 Uniform Resource Locator로 네트워크 상에서 자원이 어디있는지 알려주는 규약)을 활용해 이곳에 왔을 것이기 때문입니다. HTTP(HyperText Transfer Protocal)는 웹 브라우저를 뜻합니다. HTTP는 인터넷에서 웹 서버와 사용자 컴퓨터에 설치된 웹 브라우저 사이에 문서를 전송하기 위한 통신 규약(protocal)입니다. 곧, HTTP는 인터넷에서 하이퍼텍스트(HyperText)를 전송(Transfer)하기 위해 사용되는 통신 규약(Protocal)입니다. HTTP에 대해서 더 학습하게 된다면, HTTP는 단순합.. 2020. 11. 8.
HTTP 상태 코드 이해하기. 일반적으로 HTTP 응답 상태 코드의 목록. 1xx(정보-조건부 응답) : 요청을 받았으며 프로세스를 계속한다. 2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였다. 3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치를 필요하다. 4xx(클라이언트 오류): 요청의 문법의 잘못되었거나 요청을 처리할 수 없다. 5xx(서버 오류) : 서버가 명백히 유효한 요청에 대해 충족을 실패했다. 1xx (조건부 응답) 100(계속) 요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다. 101(프로토콜 전환) 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다. 102(처리) 2xx(성공) 200(성공) 서버가.. 2020. 11. 7.
네트워크의 기능을 계층별로 간략하게 설명해보자. 계층 모델이란 무엇인가? Layer(계층) 이라는 것은 무엇인가? N계층과 다른 노드의 N계층과의 관계, 같은 노드의 N계층과 N-1계층간의 관계 OSI 7 Layer(계층) 모델 물 / 데 / 네 / 전 / 세 / 표 / 응 네트워크 시간에 빈 도화지에 OSI 7Layer의 개념을 모두 적으라는 것이 시험문제였다. 아직도 각각의 계층이 내 머리속에 기억이 나는걸 보면 분명 그 교수님은 대단하시다. 1. 물리계층 물리 계층은 노드를 전송매체와 연결하기 위한 인터페이스 규칙과 전송매체의 특성을 다룹니다. 이는 물리적 / 전기적 / 기계적인 약속을 포괄합니다. 예를 들면, 동축 케이블의 규격이나, 신호의 전압등이 될 수 있습니다. 2. 데이터 링크 물리적 전송 오류(예: 잡음)을 해결합니다. 오류를 제어하는.. 2020. 10. 29.
01. 네트워크의 기초 2 01 노드 02 호스트 03 클라이언트 : 서비스를 요청하는 시스템 호스트의 경우 - 클라이언트가 될 수도 있고, 서버가 될 수도 있습니다. 04 서버 : 특정 서비스를 제공하는 시스템 일반적으로 클라이언트보다 먼저 실행되어 대기 상태, 계속 살아 있으면서 요청이 오면 서비스 제공. 2020. 10. 29.
01. 네트워크의 기초 1 네트워크관련기초용어 - 1 01 시스템 - 체제/체계, 내부 규칙에 따라 능동적으로 동작하는 대상을 말합니다. - 내부 정보와 외부 입력 처리를 통한 외부 출력이 가능합니다. - 작은 시스템이 모여 더 큰 시스템의 구성을 가능하게 합니다. 02 인터페이스 - 시스템과 시스템을 연결하기 위한 표준화된 접근 방식, 대등한 관계, 상하관계를 말합니다. 03 전송매체 - 시스템끼리 데이터를 전달하기 위한 물리적인 전송 수단(동축케이블, 광케이블, 공기, 전파) - 인터페이스에 정해진 규칙은 매체를 통해 전송됨으로써 구현되고 동작됩니다. 04 프로토콜(protocal) - 시스템이 데이터를 교환할 때 따르는 임의의 통신 규칙 - 상호 연동되는 시스템이 전송매체를 통해 데이터를 교환할 때 따르는 특정 규칙 - 일반.. 2020. 10. 29.
10- 메모리 메모리 메인 메모리란 명령어 집합에 의해 정의된 메모리로서 실행될 프로그램과 데이터가 머무는 장소를 의미한다. 메모리는 프로그래머에게 보이는 시스템의 속성 중 하나로 조작할 수 있는 명령어가 존재한다. 예를 들어, 대부분의 아키텍처는 메모리에 접근할 수 있도록 적재 명령어와 저장 명령어를 프로그래머에게 제공한다. 1. CPU와 메모리 CPU와 메모리는 물리적으로 메인보드의 노스브리지를 통해 서로 연결. CPU와 노스브리지 사이를 연결하는 통로는 전면버스(FSB front-side bus)라 하고, 노스브리지와 메모리 슬롯 사이를 연결하는 통로는 메모리버스(memory bus)라고 한다. 전면버스와 메모리버스는 일반적으로 동일한 클럭으로 동작하며, 메모리 슬롯에 장착되는 메모리의 클록 속도는 이 속도에 의.. 2019. 9. 8.
09-파이프라이닝 파이프라이닝? 오늘날의 컴퓨터에서 프로세서의 성능을 개선하는데 사용하는 가장 보편적인 구현 기술. 명령어를 읽어 순차적으로 실행하는 프로세서에 적용되는 기술로, 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어 실행을 시작하는 식으로 동시에 여러 개의 명령어를 실행하는 기법이다. 프로세서의 성능에 영향을 미치는 요소로 프로그램에 포함된 명령어의 수, 하나의 명령어 실행에 필요한 평균 사이클의 수인 CPI, 클록 사이클 시간 명령어의 수 : 좋은 알고리즘 또는 컴파일러를 통한 최적화 클록 사이클 시간 : 최신 하드웨어 기술 평균 CPI : 병렬 처리, 파이프라이닝, 슈퍼스칼라 파이프라이닝, 슈퍼파이프라이닝, VLIW(very long instruction word).. 2019. 9. 5.
01-연산장치부터 제어장치까지 [문제만들어 풀어보기] 문제 만들기 연산장치의 구성 요소 그리고 레지스터의 역할 ​ Booth 알고리즘 ​ 0011 x 0110 ㅡㅡㅡㅡ. 복원 알고리즘과 비복원 알고리즘 ​ 0011 을 1로 나눈 것을 복원 알고리즘과 비복원 알고리즘으로 구해보기. ​ 가드 디지트란? ​ 단일 사이클 방식과 다중 사이클 방식의 차이(결론) 데이터 경로의 구성 요소 다중 사이클 방식의 데이터 경로에 대한 설명이 아닌 것은? 다음 사이클을 위하여 현재 내용을 임시 저장소에 저장해야 한다. 메모리를 2번 접근하기 위하여 데이터 메모리와 명령어 메모리로 분할해야 한다. 단일 사이클 방식에 비하여 일반적으로 클럭 사이클 시간이 짫다. 단일 사이클 방식에 비하여 파이프라인 기법에 더 적합하다. 고정결선식 제어와 마이크로프로그래밍 제어 ​ 다음 중 마이크.. 2019. 9. 5.
01-연산장치부터 제어장치까지 연산 장치 Chapter 06 연산장치 ? 197 1 연산장치의 개요 ? 199 1 연산장치와 레지스터 파일 ? 199 2 산술장치와 논리장치의 통합 ? 201 3 플래그 레지스터 ? 202 2 정수의 덧셈 ? 204 1 덧셈 연산 ? 204 2 덧셈?뺄셈장치 ? 206 3 정수의 곱셈 ? 208 1 곱셈 연산 ? 208 2 시프트-덧셈 방식의 곱셈 연산 ? 209 3 Booth 알고리즘 ? 213 4 정수의 나눗셈 ? 217 1 나눗셈 연산 ? 217 2 복원 알고리즘 ? 218 3 비복원 알고리즘 ? 221 5 부동 소수점의 연산 ? 224 1 부동 소수점의 덧셈 ? 224 2 부동 소수점의 곱셈과 나눗셈 ? 225 3 가드 디지트 ? 227 요약 ? 229 연습문제 ? 230 연산장치의 개요 산술 .. 2019. 9. 5.
00-컴퓨터 구조 컴퓨터 부팅과정 컴퓨터에 전원을 인가하면 ROM에 저장된 BIOS가 실행된다. BIOS는 CPU, 메인 메모리, 하드 디스크와 같은 각종 하드웨어의 상태를 검사한 후 이상이 있으면 오류를 통지하고 동작을 멈춘다. BIOS는 부팅 메체인 하드디스크에 저장된 부트스트랩 로더를 메인메모리로 옮긴다. 2개 이상의 부팅 매체를 지정하여 BIOS로 하여금 운영체제를 선택하도록 할 수도 있는데, 이를 멀티 부팅이라고 한다. 부팅로더는 BIOS를 종료하고 하드디스크에 저장된 운영체제를 메인 메모리에 적재한 후 운영체제에 제어권을 넘긴다. 운영체제는 응용 소프트웨어의 실행 환경을 조성한다. 부트로더가 하드디스크에 있는 운영체제 커널을 찾아 RAM에 적제한다. 부트로더는 제어권을 운영체제에게 전달한다. 컴파일러와 인터프리.. 2019. 9. 5.
06. Process SynchronizationSubFile Process Synchronization : 프로세스 동기화 = Concurrency Control 프로세스 동기화가 되기 위한 3가지 조건 Mutual Exclusion(상호 배제) CS에 동시 접근이 안됨. ​ Progress CS에 아무것도 없을 때 누군가는 접근해야 할 때 허용하게 하는것. Bounded Waiting waiting time이 유한해야 한다는 말. 알고리즘 1 이 알고리즘에서는 turn이란 변수(Synchronization variable)을 사용하여 문제를 해결한다. Process A, Process B가 있다고 가정하고 코드를 살펴보자. A,B의 차이는 turn에 있음. Process A(turn 값 = 0) do { while(turn != 0); critical secti.. 2019. 7. 28.
06. Process Synchronization 데이터 접근(intro) 컴퓨터 시스템 안에서 어떻게 데이터가 접근하는가? Race Condition(경쟁 상태) 과연 컴퓨터에 경쟁상태가 많이 생길까? CPU라는 것은 자기의 주소공간만 본다아! 그래서 문제가 안생길거처럼 보이는데, CPU가 여러개 있는 멀티 CPU 프로세서 상태에서는 아닐 것! 특히 프로세스들이 본인 직접실행할 수 없을 경우 커널의 코드가 실행될 경우. OS에서 race condtion은 언제 발생하는가? Kernel 수행 중 인터럽트 발생시 Process가 System call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 Multiprocessor에서 shared memory 내의 kernel data Process Synchronizatio.. 2019. 7. 28.
05. CPU Scheduling-01 CPU Scheduling 스케줄링 알고리즘을 크게 2개로 나누면 (=강제로 빼앗지 않는 방법) 비선점형 Nonpreemptive (=강제로 빼앗는 방법) 선점형 preemptive CPU의 성능척도는? CPU utilization(이용률) - keep the CPU as busy as possible - CPU가 놀지 않고 일을 하는 시간 Throughput(처리량) - # of processes that complete their execution per time unit - 주어진 시간동안 몃개의 작업을 처리 했는가? Turnaround time(소요시간, 반환시간) - amount of time to execute a particular process - CPU를 쓰러 들어와서 다쓰고 I/O하러 .. 2019. 7. 28.
04. Process Management 프로세스 관리 프로세스 생성(Process Creation) Copy-On-Write(COW) 기법 부모프로세서의 코드데이터스택을 그대로 복사하기보다는 write가 발생할 때 Copy 하겠다. 그 이전까지는 부모프로세스의 코드데이터스택을 공유한다. 가능하면 공유하고 원칙적으로는 독립적이다. 부모 프로세스가 자식 프로세스를 복제해서 생성됨 프로세스의 트리(계층 구조)형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait)모델 주소 공간(Address space).. 2019. 7. 28.
02.Process 프로세스 프로세스의 개념 "Process is a program in execution" 프로세스의 문맥(context) 특정 시점을 놓고 봤을때, 어디까지 수행을 했는가를 알려주는 것! CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter 프로그램 카운터가 코드를 가르키고 있어, 현재 상태를 저장한다. 각종 register 프로세스의 주소 공간 프로세스 관련 커널 자료구조 PCB(Process Control Block) Kernel stack 과거의 상태를 현재에 정확하게 상태를 규명하는 것을 문맥이라고 한다. 문맥은 위와 같이 크게 3개에 따라 분류할 수 있다. 프로세스의 DATA 영역 안에 PCB로 저장한다. 프로세스 하나 실행할 때마다 PCB를 얼마나? 메모리를 얼마나? 줘야할지.. 2019. 7. 28.
01.컴퓨터 구조와 프로그램 실행 컴퓨터 구조와 프로그램 실행 하드웨어 및 동작에 대한 이해 메모리라는 것은 CPU의 작업 공간. CPU는 매 클럭 순간, Mode bit -> 사용자 모드 ? 운영체제 모드? 임을 선택하게 해준다. 100만배 차이, CPU가 디스크에 비해 100만 느리다? CPU는 항상 메모리와 일한다! CPU는 계속 메모리에 접근해서 IO에 대한 데이터 구조를 참고한다. CPU는 IO controller에게 일을 시키고 계속 메모리에 접근하면서 인터럽트를 한다. 인터럽트란 컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법을 말한다. 만약 무한 루프를 실행했을 때, CPU가 하나의 Memory만 계속 참조한다면, 이때 timer가 동작한다. timer가 한 메모리에 독점하지 않도록 해준다. 운영체제가 CPU를.. 2019. 7. 28.
00. 운영체제란 무엇인가? 운영체제란 무엇인가? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 목적 컴퓨터 시스템의 자원을 효율적으로 관리 컴퓨터를 편리하게 사용할 수 있는 환경을 제공 운영 체제의 분류 동시 작업 가능 여부 단일 작업(Sinlge Tasking) Ex) MS-DOS 다중 작업(multi tasking) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음. 사용자의 수 단일 사용자 MS-DOS, MS Windows 다중 사용자 UNIX, NT server .. 2019. 7. 21.
왜 세마포어(Semaphore)가 생겼나? 왜 세미포어가 생겼나? 프로세스 간 메시지를 전송하거나, 공유메모리를 통해 특정 데이터를 공유하게 되는 경우 문제가 발생할 수 있습니다. 즉, 공유된 자원에 여러 개의 프로세스가 동시에 접근하면서 문제가 발생하는 것으로써 공유된 자원 속 하나의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한해 두어야 하기 때문에, 이를 위하여 고안된 것이 바로 Semaphore 입니다. Cf) 세마포어와 뮤텍스의 차이는? 세마포어는 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것. 뮤텍스는 공유된 자원의 데이터를 한 쓰레드가 접근하는 것을 막는 것. 컴퓨터가 여러 프로그램을 동시에 수행하는 다중 프로그래밍 시스템에서는 프로세스들간의 상호배제와 동기화를 위한 기본적인 연산이 필요하게 되고 세마포어.. 2019. 7. 21.