728x90
반응형

백엔드 로드맵 15

[OS] Interprocess Communication

프로세스 간 통신이 필요한 이유 프로세스들이 서로의 공간을 쉽게 접근할 수 있다면 데이터나 코드가 바뀔 수 있기 때문에 위험합니다. 안전하게 프로세스 간에 통신을 할 수 있게 하기 위해서 IPC를 이용한 통신 방법을 제공합니다. 여러 프로세스들이 많은 일들을 처리하면서 성능을 내기 위해서 서로 상태 확인과 데이터 송수신이 필요합니다. IPC 내부 프로세스들 사이에 데이터를 효율적으로 주고 받기 위한 통신을 말합니다. IPC 기법 1. 파이프 (Pipe) 통신을 위한 메모리 공간을 생성하여 프로세스가 데이터를 주고받을 수 있게 합니다. fork()를 통해 자식 프로세스를 생성하였을 때 부모와 자식간의 통신 할 때 사용합니다. 기본 파이프는 단방향 통신입니다. 그렇기 때문에 일반적으로 2개의 파이프를 사용합..

Backend/OS 2022.08.19

[OS] Memory Management (2) - 메모리 관리 방법

Address Binding 프로세스의 주소는 논리적 주소와 물리적 주소로 나뉩니다. 논리적 주소는 가상 주소라고도 하며, CPU가 생성하는 주소입니다. 프로세스마다 독립적으로 가지는 주소 공간이기 때문에 프로세스의 내부에서 사용하고, 프로세스마다 0부터 시작합니다. 물리적 주소는 프로세스가 실행되기 위해 실제로 메모리에 올라가는 위치입니다. Address Binding 프로그램이 어떤 물리적 주소에 Load 될지 결졍하는 과정입니다. Address Binding 종류 Compile Time 프로세스의 물리적 주소가 컴파일 때 결정됩니다. 프로세스가 메모리의 어느 위치에 들어갈지 알고 있다면 컴파일러가 절대 주소를 생성합니다. 컴파일 타임의 주소 할당은 내부에서 사용하는 논리적 주소와 물리적 주소가 동일..

Backend/OS 2022.08.16

[Relational Databases] Database Replication 개념

DB Replication 초기 서버를 구성할 때는 하나의 서버와 하나의 데이터베이스를 구성하지만, 사용자 많아지고, 데이터베이스에 많은 Query가 발생하게 되면 이 트래픽을 처리하기 힘든 상황까지 오게됩니다. Query의 대부분을 차지하는 Select를 어느 정도 해결하기 위해 Replication 이라는 방법이 나오게 되었습니다. Replication은 두 개 이상의 DBMS 시스템을 Master / Slave로 나눠서 동일한 데이터를 저장하는 방식입니다. Master DBMS에는 데이터의 수정사항을 반영하고, Rplication 하여 Slave DBMS에 실제 데이터를 복사합니다. 즉, Replication은 실시간 복제본 데이터베이스 서버를 운용하는 것을 의미합니다. 기준이 되는 서버는 마스터 ..

[OS] Memory Management (1) - 메모리 관리 개념

Memory Management (메모리 관리) 프로그램은 프로세스가 되어 프로세서에 적재되기 위해 메모리에 적재되어야 합니다. 따라서 메모리는 중요한 작업 공간이고, 한정된 메모리를 다중 프로그래밍 환경에서 이용하기 위해서 여러 프로세스가 함께 메모리를 사용하면서 효율적으로 관리해야 합니다. 메모리를 효율적으로 관리하기 위해 메모리 관리자, 메모리 관리 장치(MMU), OS 관리 모듈이 있습니다. 메모리 관리 정책 적재 정책(Fetch Policy) 디스크에서 메모리로 프로세스를 언제 가져와야 할지 정합니다. 배치 정책(Placement Policy) 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정합니다. 대치 정책(Replacement Policy) 메모리가 충분하지 않을 때 현재..

Backend/OS 2022.08.09

[OS] Process Management (2) _ CPU 스케줄링

CPU 스케줄링 어떤 프로세스에 CPU를 배정할지 결정하고, 모든 프로세스가 공평하게 작업할 수 있도록 합니다. 스케줄링 목적 공평성 - 모든 프로세스가 자원을 공평하게 배정받아야 합니다. 효율성 - 시스템 자원을 비는 시간 없이 스케줄링 해야합니다. 안전성 - 우선순위를 사용하여 중요한 프로세스가 먼저 처리되도록 해야합니다. 반응 시간 보장 - 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 인식하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 합니다. 무한 연기 방지 - 특정 프로세스의 작업이 무한히 연기되어서는 안됩니다. 스케줄링의 단계 고수준 스케줄링 시스템 내의 전체 작업 수를 조절합니다. 시스템 과부하를 막기 위해 작업에 따라 승인할지 또는 거부할지를 결정하기 때문에 시스템 내..

Backend/OS 2022.07.27

[OS] Process Management (1) _ 프로세스, 멀티프로그래밍

프로세스 (Process) 메인 메모리에 할당되어 실행 상태(running)인 프로그램을 말합니다. 보조기억장치에 있는 프로그램이 메인 메모리로 적재되었을 때 프로세스라고 부릅니다. 프로세스 상태 (Process Status) new - 메인 메모리에 올라오는 상태입니다. ready - CPU 할당을 받는 것을 기다리는 상태입니다. running - CPU가 할당되어 작업 수행 중인 상태입니다. waiting - 입출력 장치와 같은 CPU 외의 할당을 받아 기다리는 상태입니다. termimated - 모든 작업이 끝난 상태입니다. PCB (Process Control Block) 각 프로세스마다 존재하며 프로세스 상태, 프로세스 번호(PID), PC value, MMU info, CPU time, reg..

Backend/OS 2022.07.26

[OS] Terminal Usage (2) _ Terminal 명령어

Terminal Usage : 터미널 사용방법 현재 디렉터리 표시 pwd 디렉터리 이동 cd 현재 사용자 확인 whoami 디렉터리 정보 확인 ls [흰색은 파일, 하늘색은 디렉터리] 디렉터리만 출력 ls -d */ 디렉터리의 더 자세한 정보 확인 ls -l [파일의 권한, 소유자, 그룹, 파일크기, 수정일 정보 출력] 가장 최근에 수정된 파일로 정렬 ls -t 가장 사이즈가 큰 파일로 정렬 ls -s 디렉터리 순서를 거꾸로 출력 ls -r 현재 디렉터리 아래의 내용 모두 확인 ls -R 디렉터리 생성 mkdir [디렉터리 이름] 디렉터리 경로 지정 생성 mkdir -p [경로] *경로에 디렉터리가 없다면 자동으로 생성* -p 옵션 디렉터리 삭제 rmdir 경로 [거의 사용하지 않음] -> rm -rf ..

Backend/OS 2022.07.19

[OS] Terminal Usage (1) _ CLI, Terminal, Shell

CLI (Command-line Interface) : 커맨드라인 인터페이스 사용자가 텍스트로 명령어를 입력하면 결과를 텍스트로 화면에 출력해주는 컴퓨팅 인터페이스를 말합니다. 구체적인 프로그램을 가리키는 단어는 아니며, 특정 방식의 애플리케이션 인터페이스에 대한 통칭입니다. MS-DOS나 리눅스 초기의 컴퓨팅 환경은 텍스트 기반의 CLI가 유일한 사용자 인터페이스였습니다. 현재는 GUI(Graphical User Interface)가 더 보펴적으로 사용되고 있습니다. 하지만 개발 환경이나 서버 관리 용도로는 여전히 CLI가 많이 사용되고 있습니다. 그렇기 때문에 서버 개발자가 되기 위해서는 CLI를 이해하고 다룰 줄 알아야한다고 생각합니다. CLI의 장점은 프로세스간 입출력 전달이나 자동화에 최적화가 ..

Backend/OS 2022.07.19

[Internet] What is hosting?

호스팅이 필요한 이유 웹은 클라이언트와 서버가 상호작용하면서 동작합니다. 사용자가 웹 페이지에서 동작을 하면 클라이언트가 서버에게 동작에 대한 요청을 보냅니다. 이 때 서버는 데이터베이스에서 데이터를 찾아 클라이언트가 요청한 데이터를 클라이언트에게 보내주고 클라이언트는 그 데이터를 사용자에게 보여주는 기능을 합니다. 이렇듯 웹을 운영하기 위해서는 자료를 저장해주고 요청에 따른 데이터를 클라이언트에 전달하는 서버가 꼭 필요합니다. 호스팅 서버의 전체 혹은 일부를 이용할 수 있도록 임대해 주는 서비스를 의미합니다. 서버를 관리하기 위해서 24시간 내내 안정적으로 전기를 공급해야하고 안정적인 인터넷 회선을 사용해야하고, 철저한 보안 시스템을 갖추고 있어야 합니다. 따라서 개인이 서버를 관리하기보다 전문 업체의..

Backend/Internet 2022.07.17

[Internet] Browsers and how they work?

브라우저 사용자가 인터넷을 사용할 수 있도록 인터넷 연결을 돕는 프로그램입니다. 브라우저 종류 파이어폭스 모질라에서 만든 브라우저입니다. 보안도 좋고, 신뢰도도 높습니다. 크롬 구글에서 만든 브라우저입니다. 웹 브라우저 중에서 제일 많이 사용되는 브라우저입니다. 마이크로소프트 엣지 마이크로소프트에서 만든 브라우저입니다. 인터넷 익스플로러라는 브라우저가 엣지로 발전하였습니다. 브라우저 주요 기능 사용자가 선택한 자원을 서버에 요청하고 서버에게 받은 데이터를 브라우저에 표시합니다. 자원은 보통 HTML 문서이지만 PDF나 이미지 또는 다른 형태일 수도 있습니다. 자원의 주소는 URL(Uniform Resource Identifier)에 의해 정해진다. 브라우저의 기본 구조 사용자 인터페이스 주소 표시줄, 버..

Backend/Internet 2022.07.16
728x90
반응형