728x90
반응형

Backend 26

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

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

Backend/OS 2022.08.09

[OS] Process Management (3) _ 쓰레드, 쓰레드 동기화, 세마포어

쓰레드 프로세스 내에서 실제로 작업을 수행하는 주체를 의미합니다. 모든 프로세스는 한 개 이상의 쓰레드가 존재하며, 두 개 이상의 쓰레드를 가지는 프로세스를 멀티스레드 프로세스라고 합니다. 멀티 쓰레드 쓰레드들이 서로 스위칭 하면서 작업을 처리함으로써 CPU 사용률을 향상시켜주고, 자원을 보다 효율적으로 사용할 수 있습니다. 또한 사용자에 대한 응답성이 높고, 작업이 분리되어 코드가 간결해집니다. 하지만 여러 쓰레드가 같은 프로세스 내에서 자원을 공유하면서 작업하기 때문에 동기화, 교착상태 같은 문제를 조심해야 합니다. 쓰레드 구현 [Java] Thread Thread 하드디스크에 있는 '프로그램'이 실행되어 메모리에 올라가면 '프로세스'가 됩니다. CPU는 프로세스를 처리합니다. 프로세스를 처리할 때 ..

Backend/OS 2022.07.31

[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] How OSs work in General

운영체제 컴퓨터 하드웨어(CPU, 입출력장치 etc) 등의 리소스를 관리해주면서 동시에 여러 애플리케이션이 작동할 수 있는 환경을 제공해주는 소프트웨어입니다. 운영체제 역할 프로그램들이 자원을 필요로 할 때 자원을 할당해줍니다. 각각 자원을 할당받은 프로그램들이 서로의 영역을 침범하지 않게 하고, 컴퓨터의 부적절한 사용을 방지하는 제어프로그램의 역할을 합니다. 운영체제 원리 컴퓨터가 부팅될 때 Bootstrap이라는 프로그램이 먼저 실행됩니다. 이 프로그램은 시스템의 모든 부분을 초기화합니다. 그리고 운영체제를 메모리에 올려 실행될 수 있도록 하고 실행 된 후 다음 이벤트를 기다리게 됩니다. 이러한 이벤트를 시스템에서는 Interrupt라고 부릅니다. 인터럽트 인터럽트는 컴퓨터가 부팅이 되고 운영체제가 ..

Backend/OS 2022.07.22

[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

[Internet] What is Domain Name?

Domain Name 사람들이 원하는 사이트에 방문하기 위해 브라우저에 입력하는 주소를 말합니다. (ex. lakelight.tistory.com) 특정 웹 사이트는 각각의 고유한 도메인 이름을 가지고 있습니다. 도메인 이름을 통해 웹 사이트를 더 찾기 쉽게 하고 식별하기 쉽게 합니다. 식별하고 외우기 어려운 IP 주소 (ex. 127.187.23.13) 를 기억하기 쉬운 단어를 사용해 저장하는 것입니다. Domain Name 구조 도메인 이름은 계층 구조를 갖고 있습니다. 우측에서 부터 Root, Top-Level-Domain(TLD), Second-Leve-Domain(SLD) - SUB 입니다. www는 도메인 네임에 포함이 되지 않습니다. www는 호스트명입니다. Root 가장 최상위에 위치해 있..

Backend/Internet 2022.07.12
728x90
반응형