IT 프로그래밍/운영체제 12

[운영체제] 프로세스 통신 구현

물론이죠! 전체적으로 프로세스 간 통신(IPC, Inter-Process Communication)과 관련된 내용을 다루고 있는 것 같아요. 흐름을 유지하면서 좀 더 명확하고 자연스럽게 정리해드릴게요:공유 메모리(shared memory) 객체는, 해당 이름을 가진 객체가 존재하지 않을 경우 새로 생성되며, 읽기와 쓰기가 모두 가능한 형태로 생성됩니다. 이때, 공유 메모리 객체의 접근 권한은 0666으로 설정되어, 모든 사용자에게 읽기 및 쓰기 권한을 부여합니다.이러한 공유 메모리는 파일 디스크립터(file descriptor)를 통해 접근하며, 이는 시스템 콜(system call)의 반환값으로 할당됩니다. 사용자 애플리케이션에서는 직접 하드웨어나 커널을 제어할 수 없기 때문에, 시스템 콜을 통해 커널..

[FT] [운영체제] 프로세스의 생성과 삭제

프로세스의 상태운영체제에서 프로세스(Process) 는 실행 중 여러 가지 상태(state) 를 가집니다. 대표적인 상태는 다음과 같습니다.1. 프로세스의 주요 상태상태설명생성 상태 (New)프로세스가 생성되어 PCB가 할당 된 상태준비 상태 (Ready)실행 가능한 상태이지만 CPU를 할당받지 못한 상태실행 상태 (Running)CPU를 할당받아 실행 중 인 상태대기 상태 (Waiting, Blocked)입출력 작업 등 특정 이벤트를 기다리는 상태종료 상태 (Terminated)실행이 끝나 PCB가 폐기되고 자원이 반환된 상태2. 프로세스 상태 전이 (State Transition)준비 → 실행: CPU를 할당받으면 실행 상태로 전환실행 → 준비: 타이머 인터럽트 발생 시 다시 준비 상태로 이동실행 →..

[FT] [운영체제] 프로세스의 생성과 삭제

프로세스의 상태운영체제에서 프로세스(Process) 는 실행 중 여러 가지 상태(state) 를 가집니다. 대표적인 상태는 다음과 같습니다.1. 프로세스의 주요 상태상태설명생성 상태 (New)프로세스가 생성되어 PCB가 할당 된 상태준비 상태 (Ready)실행 가능한 상태이지만 CPU를 할당받지 못한 상태실행 상태 (Running)CPU를 할당받아 실행 중 인 상태대기 상태 (Waiting, Blocked)입출력 작업 등 특정 이벤트를 기다리는 상태종료 상태 (Terminated)실행이 끝나 PCB가 폐기되고 자원이 반환된 상태2. 프로세스 상태 전이 (State Transition)준비 → 실행: CPU를 할당받으면 실행 상태로 전환실행 → 준비: 타이머 인터럽트 발생 시 다시 준비 상태로 이동실행 →..

[FT][운영체제] 프로세스와 스레드

실행 중인 프로그램을 프로세스(Process) 라고 합니다. 메모리는 커널 영역(Kernel Space) 과 사용자 영역(User Space) 으로 나뉘며, 프로세스는 사용자 영역에서 실행됩니다. 같은 프로그램이라도 여러 개의 프로세스로 실행될 수 있습니다. 즉, 동일한 프로그램을 여러 번 실행하면 각각 독립적인 프로세스로 동작합니다. 하지만 같은 프로그램이 여러 번 실행된다고 해서 반드시 메모리에 중복 적재될 필요는 없습니다.프로세스 제어 블록모든 프로세스는 프로세스 제어 블록(PCB, Process Control Block) 이라는 데이터 구조를 갖습니다. 운영체제는 PCB를 통해 각 프로세스를 식별하고 관리합니다. PCB는 운영체제의 커널 영역 에 위치하며, 실행 중인 모든 프로세스의 PCB가 저장..

[운영체제] 프로세스

프로세스가 fork()를 통해 새로운 자식 프로세스를 생성하면, 자식 프로세스는 독립적으로 실행됩니다. 이때 자식 프로세스가 종료될 때까지 부모 프로세스는 wait() 시스템 호출을 통해 자식의 종료 상태를 수거할 수 있습니다.하지만 부모 프로세스가 wait()을 호출하지 않으면, 두 가지 상황이 발생할 수 있습니다.1. 좀비(Zombie) 프로세스자식 프로세스가 종료되었지만, 부모 프로세스가 wait()를 호출하지 않으면 자식의 종료 상태(exit status)가 커널에 남아 있게 됩니다.자식은 종료되었지만, 부모가 wait()를 호출하지 않아 프로세스 테이블에서 완전히 제거되지 않고 남아 있는 상태를 좀비 프로세스라고 합니다.좀비 프로세스는 리소스를 거의 소비하지 않지만, 너무 많아지면 프로세스 테이..

[운영체제] 스케쥴러

ShortTerm vs LongTerm📌 프로세스 스케줄링과 스케줄러 종류운영체제(OS)는 Ready Queue 에 있는 프로세스를 끄집어내어 CPU의 자원을 할당합니다.단, 프로세스를 끄집어낸다고 해서 바로 실행되는 것은 아닙니다.CPU 자원이 실제로 할당될 때 비로소 프로세스가 실행됩니다.이러한 CPU 자원 할당과 프로세스 실행 관리는 운영체제의 역할입니다.📌 스케줄러 종류운영체제에서 프로세스를 관리하는 스케줄러는 Short-Term, Long-Term, Medium-Term 3가지로 나뉩니다.Short-Term Scheduler (단기 스케줄러)Ready Queue에서 프로세스를 선택하여 CPU에 할당대부분의 운영체제에서 "스케줄러" 라고 하면 Short-Term Scheduler를 의미짧은 간..

[운영체제] 프로세스의 관리

프로세스 개념운영체제에서 특정 프로그램을 더블 클릭하여 실행할 때, 해당 프로그램은 프로세스라고 불립니다.시분할 시스템 (Time-Shared Systems)시분할 시스템(Time-Shared Systems)은 여러 개의 프로그램을 동시에 실행할 수 있도록 진화한 시스템으로, **멀티태스킹(Multitasking)**이라고도 합니다. 이는 운영체제가 여러 작업을 스와핑(Swapping) 하면서 실행하는 방식으로, 사용자가 여러 작업을 번갈아 수행하는 것과 유사합니다.프로그램과 프로세스프로세스는 실행 중인 프로그램을 의미합니다. 반면, 프로그램은 실행되지 않은 상태로 존재하는 수동적인 개체입니다. 프로그램이 실행되면 Active(활성화) 상태가 되며, 운영체제로부터 메모리 공간을 할당받아 실행됩니다.프로세..

HTTP, SSL 설명

HTTP란?하이퍼텍스트 전송 프로토콜로 하이퍼텍스트 링크를 통해 웹페이지를 로드하는 데 사용됩니다. 일반적인 흐름에는 클라이언트에서 서버에 요청해서 서버해서 보내주는 것입니다.  HTTP 요청에 들어있는 것 HTTP 버전 유형URLHTTP 메서드HTTP 요청 헤더선택 사항인 HTTP 본문이러한 요청 작동 방식과 요청 내용을 사용하여 정보를 공유합니다.  HTTP 메서드GET HOST 등을 통한 함수입니다. HTTP 요청 헤더Request Headers이며 method, path, autority 같은 것들이 포함되어 있습니다. SSL/TLS암호화 기반 인터넷 보안 프로토콜입니다. 인터넷 통신의 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 개발했으며 현재의 TLS 암호화의 전신입니다.  HTTPS..

DNS란? 용어 정리 DNS쿼리 8단계

DNS란?도메인을 숫자로 변경시켜 주는것인데요. 풀명칭은 Domain Name System입니다. 인터넷의 전화번호부라고 보시면 됩니다. 인터넷 리소스를 로드할 수 있도록 도메인 이름을 ip주소로 변환합니다. DNS의 용어 정리DNS 리커서도서관 어딘가에 있는 특정 책을 찾으러 가는 사서로 비유할 수 있습니다. 웹 브라우저 같은 애플리케이션을 통해 클라이언트 시스템으로부터 쿼리를 수신하도록 설계된 서버입니다. 루트 네임서버호스트 이름을 IP주소로 변환하는 첫 번째 단계입니다. 이는 다양한 책꽂이를 가리키는 도서관의 색인처럼 생각할 수 있습니다. TLD네임서버도서관의 특정 책 랙으로 생각할 수 있습니다. 이 이름 서버는 특정 IP 주소 검색의 다음 단계이며 호스트 이름의 마지막 부분을 호스팅합니다. 권위있..

OSI 7계층

7계층 아키텍처가 있는데 이것이 협업을 하여 전 세게 한 사람에게서 다른 사람에게 데이터를 넣습니다. 이것은 전문적인 네트워크 기능을 수행하기 위해 7개의 레이어가 나누어져 있어 네트워크에 체계적으로 접근이 가능하도록 만들어진 것입니다. 물리계층 - 계층1한 노드에서 다음 노드로 개별 비트를 전송하는 역할을 합니다. 수신된 신호를 가져와서 0 과 1로 변환을 한 다음에 데이터 링크 계층으로 보내 프레임을 다니 결합합니다. 물리 계층의 기능-비트 동기화-비트 전송률 제어-물리적 토폴로지-전송모드  데이터 링크 계층(DLL) - 계층2오류가 없는지 확인하는 과정입니다. 메세지의 노드 간 전달을 담당하며 패킷이 네트워크에 도착하면 MAC 주소를 사용하여 호스트에 패킷을 전송하는 것이 DLL의 책임입니다. 데이..