본문 바로가기

컴퓨터공학/운영체제10

[운영체제?] 스레드의 종류(하드웨어스레드, 커널레벨스레드, 유저레벨스레드) 하드웨어 스레드 일단은 우리가 알고 있는 스레드 개념은 잊자 코어의 고민 : 메모리에서 데이터를 기다리는 시간이 오래 걸려… 메모리를 기다리는 동안 다른 스레드를 실행하는 건 어떨까? 메모리에 접근하는 과정 중간중간 다른 연산을 처리하자 (코어 사용률 극대화) 인텔의 hyper-threading : 물리적인 코어마다 하드웨어 스레드가 두 개 OS 관점에서 가상의 코어 ex) 싱글 코어 CPU에 하드웨어 스레드가 두 개 라면 OS는 CPU를 듀얼 코어로 인식 소프트웨어 스레드 커널 레벨 스레드 CPU에서 실제로 실행되는 단위, CPU 스케쥴링의 단위 OS 쓰레드의 컨텍스트 스위칭은 커널이 개입하기 때문에 비용이 발생 또는 OS 커널의 역할을 수행하는, 커널 코드를 실제 실행하는 쓰레드 유저 레벨 스레드 쓰.. 2023. 9. 10.
[운영체제] 커널 영역 커널 OS엔 유저모드와 커널모드가 존재!!!! 프로그램 실행 중 인터럽트가 발생하거나 시스템콜을 호출하게 되면 커널 모드로 전환된다. 헉 커널이 핵심이란 뜻이다. 처음 알았다. 그만큼 운영체제에서 커널이 중요하다는 뜻이다!!!!!! 시스템 전반을 관리/감독하는 역할 하드웨어와 관련된 작업을 직접 수행 커널 모드 프로그램의 현재 cpu 상태를 저장함 커널이 인터럽트, 시스템콜 직접 처리 → 처리 완료되면 중단됐던 프로그램의 cpu 상태를 복원 왜 필요하죠? 시스템 보호하기 위해 OS event OS 이벤트엔 세 종류가 있다. (사실 더 크게 보면 두 종류이다) 인터럽트 보통 하드웨어에 의해 발생, 소프트웨어도 발생 가능 (원문 : Trigger the processor to execute the corre.. 2023. 9. 9.
[운영체제] 파일 시스템은 어떻게 구현되어 있는가? File System Implementation 실제 사용 중인 운영체제에선 파일 시스템이 어떻게 구현되어 있을까? 살펴 보도록 하자. Continuous allocation 한 파일을 디스크의 연속된 block에 저장 👍🏻 효율적인 파일 접근 👎🏻 새로운 파일을 위한 공간 확보가 어려움, 외부 단편화 문제, 파일 공간 크기 결정이 어려움(파일이 커져야 할 경우는?) Dis-continuous allocation Linked allocation 파일이 저장된 블록들을 링크드 리스트로 연결 디렉토리는 각 파일에 대한 첫 번째 블록을 가리키는 포인터를 가짐 👍🏻 단순, 외부 단편화 없음 👎🏻 직접 접근에 비효율적, 포인터 공간 필요, 신뢰성(사용자가 포인터를 건들면?) 구현체 ⇒ FAT(File Alloca.. 2023. 9. 8.
[운영체제] 파일 시스템 보호 File Protection 파일에 대한 부적절한 접근 방지 → 다중 사용자 시스템에서 더욱 필요 접근 제어가 필요한 연산들 : Read, Write, Execute, Append 파일 보호 기법으론 password 기법과 access matrix 기법이 있는데 두 번째 방법에 집중할 것이다. Password 기법 각 파일에 PW 부여 비현실적 : 접근 권한 별 서로 다른 PW 부여해야 함 Access Matrix 기법 범위(domain)와 개체(object) 사이의 접근 권한을 명시 *object : 접근 대상(file, device등) *domain : 접근 권한의 집합, 같은 권한을 가지는 그룹(사용자, 프로세스) Global Table 시스템 전체 file에 대한 권한을 가지는 table ⚠️ 테.. 2023. 9. 7.
[운영체제] 파일 시스템과 디렉토리 구조 File 보조 기억 장치에 연관된 정보들의 집합 보조 기억 장치 할당의 최소 단위 sequence of bytes 프로그램 파일, 데이터 파일 text 파일, binary 파일 파일 속성 : name, identifier, type, location, size, protection, user identification, time 등등 파일 연산 : create, write, reposition, read, delete 등등 수행 ⇒ OS는 파일 연산들에 대한 system call을 제공해야 함 파일 접근 방법 Sequential access : file을 record 단위로 순서대로 접근 (fgetc()) Directed access : 원하는 block을 직접 접근 (lseek(), seek()) In.. 2023. 9. 7.
[운영체제] 페이징 교체 알고리즘 최적(OPT) 가장 오랫동안 참조되지 않을 페이지 교체 가장 낮은 페이지 폴트를 발생시키지만 미래를 예측할 수 없어 구현 불가능 → 다른 알고리즘을 평가하는 참고용으로만 쓰인다. LRU 가장 오랫동안 참조되지 않은 페이지 교체 최적에 근접한 성능이나 구현이 어렵고 오버헤드가 크다. 페이지 참조시간을 기록하는 공간이 사용된다 구현방법 각 페이지의 최종 참고시간을 기록하는 테이블을 생성한다. 이중연결리스트 스택을 이용한다. FIFO 가장 오래 전에 적재된 페이지 교체한다. 가장 쉽게 구현 가능하지만, 페이지 폴트 가능성이 높다. 교체되는 페이지 메모리 위치에 적재가 된다. FIFO라고 페이지가 큐처럼 움직이는 것이 아니다. LFU 가장 참조횟수가 적은 페이지 교체 교체 대상이 여러 개 이면 가장 오래된 페이.. 2023. 5. 25.
[운영체제] 페이징과 외부 단편화, 내부 단편화 스와핑 메모리에 적재된 프로세스가 잠시 저장공간(SSD, HDD)에 물러났다가 다시 메모리로 적재되는 작업 가상 메모리를 이해하기 위한 약간의 지식 초기 메모리 관리법 MMU(Memory Management Unit)라는 논리 주소를 물리 주소로 변환하는 CPU 안의 장치를 이용해 메모리에 접근했다. (논리주소/물리주소에 자세히 알고 싶으면 아래 링크 참조) [운영체제 OS]Address Binding 주소 할당, 주소 바인딩, 논리적 주소(logical) vs 물리적 주소(physical), 컴 [운영체제 목차] 안녕하세요~!! ㅎㅎㅎ 메모리 관련 문의글이 많아, 가장 기초적인 주소 할당부터, 그 종류, 페이징, 캐시메모리...쪽을 한번 먼저 쭉 다뤄볼까해요 ㅎㅎ 요새 기다려주시는 사람 jhnyang... 2023. 5. 2.
[운영체제] 교착상태와 은행원 알고리즘 교착상태 Dead Lock 프로세스들이 서로의 자원을 기다리며 무한히 기다리는 현상이다. 아래 4개 조건이 성립할 때 교착상태가 발생한다. 비선점 Non-Preemption : 자원을 선점하지 않음 환형대기 Circular Wait : 원형으로 꼬리물기처럼 대기 중 상호배제 Mutual Exclusion : 자원은 하나의 프로세스만 점유 가능 점유 대기 Hold and Wait : 자원을 점유하고 있으면서 추가로 다른 자원을 기다리고 있는 상태 교착상태 처리하기 예방 Prevention 상호배제 부정 : 여러 프로세스가 공유 자원 사용 점유대기 부정 : 프로세스 실행전 모든 자원을 할당 비선점 부정 : 자원 점유 중인 프로세스가 다른 자원을 요구할 때 가진 자원 반납 순환대기 부정 : 자원에 고유번호 할.. 2023. 5. 1.