본문 바로가기

CS

(32)
운영체제의 역할과 구조 Re 운영체제의 정의 : 하드웨어와 소프트웨어(유저 프로그램을)를 효율적으로 관리하는 역할을 한다. 운영체제의 역할● CPU 스케줄링과 프로세스 관리 : CPU소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제,자원 할당 및 반환을 관리 ● 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리 ● 디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 관리 ● I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.  시스템콜 시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의서비스를 받기 위해 커널 함수를 호출할 때 쓴다. 유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면올바른 ..
[ blocking I/O ], [ non-blocking I/O ], [ sync ], [ async ] blocking I/O랑  non-blocking I/O 보려다가 sync, async 보는 것 때문에 힘들었다.... 내가 이해한 것은 이 본문의 내용인데 틀리면 피드백좀 받고 싶다. 결과적으로 말하면 blocking은 제어권의 개념, sync, async는 실행 순서의 개념이다. 우선 I/O에 대한 정의부터 살펴보자 정의 : I/O란 데이터의 입력(Input)과 출력(Output)을 함께 일컫는 말이다. 어떤 디바이스를 통해 입력과 출력이          이뤄지는 모든 작업을 I/O라고 한다. 그러므로 이를 효율적으로 실행하는게 성능의 극대화를 가져온다. 1. blocking I/OI/O작업이 진행되는 동안 유저 프로세스가 자신의 작업을 중단한 채, I/O가 끝날 때까지 대기하는 방식을의미한다. 다음..
[ 프로세스 ] Re 프로세스는 프로그램이 메모리에 올라가 인스턴스화된 것을 말한다.  1) 프로세스와 컴파일 과정 프로그램의 컴파일 과정은 다음과 같다. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환한다. 컴파일러오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환합니다. ※ Java의 경우는 JVM에서 실행되므로 어셈블리어로 변환이 안된다.    → Java의 장점 어셈 블러어셈블리어는 목적 코드(object code)로 변환된다. 이 때 확장자는 운영체제마다 다르다.→ Linux에서는 [ .o ]가 되고 Windows에서는 [ .c ]가 된다. 링커프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만든다.실행 파일의 확장자는 .exe ..
IP 관련 개념 ☎ 컴퓨터와 컴퓨터 간의 통신은 IP 주소 기반으로 통신한다고 알려져 있다. 이를 세부적으로 보게 되면 가상 주소인IP주소에서 ARP를 통해서 특정 MAC주소를 찾는 것이다. 이를 역순으로 한 것이 RARP이다.IP주소는 보통 논리적 주소이고, MAC주소는 물리적 주소이다. MAC의 주소는 한 번 네트워크 관리자가 설명하게되면 일반적으로 불변한다. 1) 라우팅 전송(홉 바이 홉)IP 주소를 통해 통신하는 과정을 홉바이홉 통신이라고 한다. 서브네트워크 안에 있는 라우터의 라우팅 테이블 IP를기반으로 패킷을 전달하고 또 전달해나가며 라우팅을 수행하며 최종 목적지까지 패킷을 전달한다.IP를 찾는 과정은 각각의 라우팅 테이블에 의해 이루어진다. 즉 라우팅 테이블은 게이트웨이와 모든 목적지에 대해해당 목적지에 도달하..
[ TCP/IP 4계층 ] vs [ OSI 7계층 ] Re ① TCP/IP 4계층현재 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 모음 TCP/IP 4계층과 OSI Model 7계층은 다음과 같다. 설명의 순서는 상단에서 하단으로 이루어진다.1. 애플리케이션 계층(Application Layer)- OSI 계층에서 5,6,7 계층에 해당한다.- 사용자가 응용프로그램과 소통할 수 있게 UI를 제공한다. 2. 전송 계층(Transport Layer)- OSI 계층에서 전송 계층에 해당한다.- 데이터의 송수신을 담당하고 통신 노드 간의 연결을 제어한다.- 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송 기능을 제공한다.→ 딱 Socket통신, HTTP통신 공부할 때 배웠던 내용 그대로다 3. 인터넷 계층(Internet Layer)- OSI..
HTTP, Socket, WebSocket 남양주 정약용 도서관을 개발하면서 Socket통신을 했는데 정작 왜 하는지 차이점은 뭔지 몰랐다... 알아보자둘 다 ip, port이용해서 통신하던데 뭐가 다르지...?→ 공부하다보니 네트워크 계층 공부까지 해야겠다. 우선 HTTP, Socket, WebSocket 부분만 간략하게 하고 알아본다. HTTP, Socket, WebSocket을 공부하고 나서 파악한 사실은 다음과 같다.HTTP통신과 Socket통신은 결국 TCP/IP 프로토콜을 기반으로 이루어진다TCP/IP가 연결을 계속 유지하느냐 마느냐의 차이인 것이다.→ 내가 이해한 것인데 틀리면 수정해야겠다. Socket은 3-way-handshake라는 과정을 거치고 연결이 이루어진다.양방향 통신이 이루어지는데 이는 클라이언트단과 서버단의 연결이 끊..
SEO(Search Engine Optimization) 정의 : 검색엔진 최적화를 뜻하며 사용자들이 검색엔진으로 웹 사이트를 검색했을 때 그 결과를 페이지 상단에          노출시켜 많은 사람이 볼 수 있도록 최적화하는 방법을 의마한다. 이전에 HTTPS가 SEO에 더 좋다는 정보를 확인했다. 그런데 왜?→ 보안이 적용된 사이트가 SSL/TLS를 적용한 것을 선호하므로 검색 상위에 더 노출이 된다고 한다. SEO에 자주 노출되는 방법- 캐노니컬 설정 : - 메타 설정 : html 파일의 가장 윗부분인 메타를 잘 선정해야 한다.- 페이지 속도 개선 : 사이트의 속도를 빠르게 조치한다.- 사이트맵 관리 : 사이트맵을 정기적으로 관리한다. ※ 꼬꼬무SSR, CSR보통 SSR이 SEO에 좋다는데 최근에는 Google같은 경우는 CSR에도 상관없다고 했는데 어떻..
HTTPS HTTPS정의 : HTTP/2는 HTTPS 위에서 동작한다. HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS계층을 넣은 신뢰할 수 있는 HTTP 요청을 말한다. 이를 통해 통신을 암호화한다. ※ SSL/TSLSSL은 1.0부터 시작해서 SSL 2.0, SSL 3.0 TLS(Transport Layer Security Protocol) 1.0, TLS 1.3까지 올라가며마지막으로 TLS로 명칭이 변경되었으나, 보통 SSL/TLS로 많이 부른다.전송 계층에서 보안을 제공하는 프로토콜이다. 통신을 할 때 SSL/TLS를 통해 제 3자가 메시지를 도청하거나변조하지 못하도록 합니다. SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증메커니즘, 키 교..