기록/운영체제 13

리눅스

리눅스 : 파일 시스템, 권한 및 구조리눅스는 다중 사용자를 지원하는 운영체제로, 안정성과 보안성이 뛰어나다. 파일 시스템, 권한 관리, 사용자 관리 등 다양한 기능을 제공하여 서버 환경에서 널리 사용된다. 이 글에서는 리눅스에 대해 전혀 모르는 사람을 위해 리눅스의 파일 시스템, 권한, 내부 구조 등에 대해 자세히 설명한다. 파일 시스템의 이해파일 시스템 개념파일 시스템은 디스크에 저장된 데이터와 논리적인 단위인 파일을 연결하는 체계이다. 운영체제가 데이터를 찾아 읽고 쓰기 위해 구성하는 구조이다. 파일 시스템의 기능은 다음과 같다.파일 관리(생성, 삭제, 수정 등)파일 접근 방법과 제어 방법 제공백업이나 복구 기능 제공파일 안전을 위한 암호화 및 복호화 기능파일 접근 인터페이스 및 명령어 제공리눅스의..

기록/운영체제 2025.03.17

운영체제란? 커널, 프로세스, 교착 상태까지

운영체제운영체제는 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하고, 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 핵심 소프트웨어다. 사용자와 하드웨어 간의 인터페이스 역할을 하며, 효율적인 자원 관리를 통해 시스템의 성능을 최적화한다.일반적으로 SSD 또는 HDD에 설치되며, 컴퓨터 부팅과 동시에 메모리에 로드되어 실행된다.프로세스는 실행 중인 프로그램의 인스턴스로, 작업을 수행하는 기본 단위다. 운영체제는 프로세스를 관리하며, 프로세스는 실행 중 여러 상태를 거친다.New (생성) 프로세스가 생성된 상태로, 아직 실행 준비가 완료되지 않았다. Ready (준비) 실행 준비를 마치고 CPU 할당을 기다리는 상태다. Running (실행 중) CPU를 할당받아 명령어를 실행하는 상태다. Wait..

기록/운영체제 2025.03.14

스레드 Thread (1) - 하드웨어와 소프트웨어

Computer Science 학습 시작 CS에 대한 지식이 완전하다고 생각되지 않아 공부를 시작했고, 해당 내용을 정리해서 올리겠다! 오늘은 스레드 Thread에 대한 내용이다. 다만 후에 더 상세한 내용을 담아 정리하도록 하고 오늘은 스레드의 간단한 개념에 대해서 정리하려고 한다.  스레드 Thread 스레드의 사전적 의미는 실행 흐름의 단위라고 한다. 다만 스레드는 CPU와 프로그래밍에서 사용되는 예가 다르다. 따라서 스레드는 하드웨어적인 의미와 소프트웨어적인 의미가 있다.  하드웨어적 스레드CPU에서 쓰이는 스레드의 의미다. 흔히 우리들은 컴퓨터를 사려고 할 때 몇 코어 몇 스레드라는 CPU에 대한 설명을 듣게 된다. 코어가 '명령어를 실행하는 부품'이라면 스레드는 '하나의 코어가 동시에 처리하는..

기록/운영체제 2024.07.08

운영체제(9) - 입출력 시스템과 디스크 관리

입출력 모듈 입출력 모듈은 프로세스, 레지스터 등의 내부 저장장치와 물리적 입출력 장치 사이에서 이진 정보를 전송하는 방법을 제공한다. 입출력 모듈이 프로세서를 대신해서 입출력 업무를 수행하면 입출력 채널 또는 입출력 프로세서가 된다. 단순히 입출력 방법만 담당하면 입출력 제어기 또는 장치 제어기가 된다. 기능 입출력 장치 제어 프로세서와의 통신 : 명령해독, 데이터 교환, 상태 보고, 주소 인식 등을 수행. 데이터 버퍼링 : 버퍼링을 통해 속도 조절. 오류검출 입출력 방법 프로세서의 역할에 따라서 입출력 방법이 달라진다. 프로세서 제어 입출력 (프로세스가 전부 관여) DMA 입출력 입출력 채널 프로그램 제어 입출력 프로세서의 내부에 각종 레지스터가 있다는 것을 알고 있다. 프로세스 내부의 입출력 주소 ..

기록/운영체제 2022.12.07

운영체제(8) - 가상 메모리

가상 메모리 이전 글에서 실제 메모리에 대해 다뤘다. 이는 메모리 관리 방법을 토대로 제공하는 기술이며, 각 프로그램에 실제 메모리 주소가 아니라 '가상 메모리 주소'를 주는 방법이다. 이 가상 메모리는 사용자와 논리적 주소를 물리적으로 분리해서 사용자가 메인 메모리에서 용량을 초과하는 프로세스에 가상 메모리 주소를 지정해서 메모리를 제한 없이 사용할 수 있도록 한다. 프로그램 전체를 동시에 실행하는 것이 아니라 일부만 적재해도 실행 가능하도록 한다. 즉, 보다 큰 프로그램을 적은 메모리에서 처리할 수 있게 해준다. 프로세스의 코드와 데이터는 디스크에 저장하고, 실행영역만 메인 메모리에 유지한 상태로 필요할 때만 스왑 인 앤 아웃 과정을 거쳐 프로세스를 재할당한다. 이는 메인 메모리의 '제한된 용량'과 ..

기록/운영체제 2022.11.28

운영체제(7) - 페이징, 세그먼테이션, 페이지화된 세그먼테이션

불연속 메모리 할당 페이징 Paging 작업을 메모리관리장치(MMU)에서 작업크기가 동일한 페이지에 할당하여 처리하는 불연속 메모리 할당 방법이다. 빈 프레임에 어떤 페이지든 적재시킬 수 있기에 메모리의 효율적인 사용. 프레임 간의 외부단편화가 발생하지 않는다. 운영체제 선에서는 페이지 관리 부담이 크다. 프로세스의 필요공간이 페이지와 맞지 않으면 내부단편화가 발생할 수 있다. 논리적 주소가 전해지면 페이지 테이블에서 논리적 주소의 페이지번호(p)를 보고 알맞는 페이지를 할당한다. 그리고 실제 메모리의 위치인 프레임(f)의 값을 물리적 주소에 저장하고, 논리적 주소에 있던 오프셋(d)값을 물리적 주소에 넘긴다. 비로소 메모리에 이를 할당하면 된다. 각 테이블 항목마다 논리적 페이지 주소와 프레임번호가 있..

기록/운영체제 2022.11.21

운영체제(6)

메모리 관리 메모리를 사용할 프로세스들을 위해 메모리를 할당, 제거, 보호하는 활동이다. %여기서 보호란, 프로세스는 적재된 메모리의 영역에서만 다뤄질 수 있으므로 다른 메모리영역으로의 접근을 막는 것이다. 메모리를 관리하는 정책은 다음과 같다. 적재 정책 fetch: 디스크->메모리로 프로세스의 반입시기를 결정하는 것. 요구 적재 : 주체에 따른 참조요청에 따라 다음에 실행할 프로세스를 적재하는 것. 예상 적재 : 시스템의 요청을 미리 예측해서 적재하는 것. 배치 정책 : 적재된 프로세스를 어느 위치의 메모리에 저장할 것인지를 결정하는 것. 저장위치에 따라 효율이 달라진다. 대치 정책 : 메모리가 충분하지 않을 때 적재된 프로세스 중에 제거할 것을 정하는 것이다. 매핑 mapping : 논리적 주소와 ..

기록/운영체제 2022.11.03

운영체제(5) - 교착 상태와 기아 상태

교착 상태 Deadlock 교착상태란? 교착상태Deadlock란, 다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건을 기다리는 상태를 말한다. 프로세스는 자원을 요청 -> 사용 -> 해제 순으로 사용한다. 이러한 프로세스가 두 개 있다고 가정해보자. 교착상태는 두 프로세스가 하나의 자원을 서로 요청하여 기다릴 때 발생한다. 교착상태에 빠지면 작업이 정지되어 명령 실행이 불가해진다. 따라서 운영자나 사용자는 작업을 교체하거나 종료하는 등의 외부 간섭으로만 해결할 수 있다. 교착상태의 간단한 예를 들 수 있다. 스풀링이 있다. 스풀링은 버퍼링보다 빠른 디스크를 이용한 임시저장공간이다.이러한 스풀 공간에서 출력을 하나도 완료하지 않은 상태에서 입력만 받으면 공간이 모두 차버려서 교착상태가 발생할 ..

기록/운영체제 2022.10.09

운영체제(4)-병행프로세스와 상호배제

병행 프로세스 운영체제가 프로세스를 빠르게 전환하여, 프로세스 여러 개를 동시에 실행하는 것처럼 보이게 하는 것. - 병행 프로세스의 종류 - 독립 프로세스: 단일 처리 시스템에서 수행하는 병행 프로세스. 다른 프로세스에게 영향을 주거나 받지 않으면서 독립적으로 실행한다. - 협력 프로세스: 다른 프로세스와 상호작용하며 특정 기능을 수행하는 비동기적(동시에 일어나지 않는)프로세스이다. + 예: 두 프로세스가 동일한 파일을 사용할 때, 한 프로세스는 읽기를 할 수 있고, 한 프로세스는 읽기 작업과 작업 시간을 맞추지 않고 쓰기를 할 수 있다. % 협력프로세스는 입출력 장치나 메모리, 프로세서 등의 자원을 서로 사용 시 충돌이 발생할 수 있다. 이때, 상호배제가 필요한 것이다. 병행성 여러 프로세스를 이용해..

기록/운영체제 2022.10.04

운영체제(3)

프로세스 ================================= 프로세스 (process): 실행 중인 프로그램, 스택, 힙, 데이터 같은 메모리 구조와 레지스터처럼 현재 사용 중인 자원에 대한 정보를 갖고 있는 동적인 개체이다. 병행하는 프로그램들은 자원을 공유하고 이를 제어하는 것이 필요한데, 이는 프로새스의 '역할'이다. - 스택(stack): 데이터를 일시적으로 저장하는 공간. 지역변수에 사용되고 이 범위가 밖으러 나갔을 때 해제된다. 호출한 함수의 반환 주소, 값, 매개변수 등에 사용된다. 함수를 호출하면 힙(heap)의 방향으로 늘어나고, 반환하면 줄어든다. 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었다는 뜻. - 힙(heap): 사용자가 직업 관리하는 주소 영역. 사용자에 의해 ..

기록/운영체제 2022.09.15
728x90
반응형