프로그래밍/CS67 CS스터디 3주차 - 페이징 메모리 2주차 회고(어제 진행) - 다른 개념과의 비교를 묻는 꼬리 질문에 어려움을 겪음 - 더 많은 자료를 보면서 확실히 이해를 해야 할듯 1. 페이징 & 세그먼테이션 세그멘테이션과 페이징의 차이점은 무엇인가요? 세그멘테이션(Segmentation)과 페이징(Paging)은 운영체제에서 메모리 관리를 위해 사용되는 기술입니다. 세그멘테이션은 프로그램을 여러 개의 세그먼트(segment)로 나누어 각 세그먼트를 독립적으로 관리합니다. 세그먼트는 프로그램의 논리적인 단위인 코드, 데이터, 스택 등으로 나뉘어집니다. 이 때문에 메모리 공간을 좀 더 유연하게 사용할 수 있습니다. 반면, 페이징은 프로그램을 고정된 크기의 페이지(page)로 나누어 관리합니다. 페이지는 일정한 크기로 나눠진 블록으로, 프로그램이 사용하.. 2023. 3. 24. CS스터디 2주차 - 인터럽트 데드락 CS스터디의 한 주 분량의 공부해야 할 양이 많고 다들 열심히여서 다음 주 스터디 내용을 미리 정리해 보았다 다음 주 수요일 스터디시간까지 계속 더 공부할 계획이다 1. 임계구역이란 무엇이고 어떻게 해결하나요 임계구역(Critical Section)은 여러 스레드나 프로세스가 동시에 접근하면 문제가 발생할 수 있는 공유 자원을 사용하는 코드 영역을 말합니다. 이러한 임계구역 문제를 해결하기 위해서는 상호배제(Mutual Exclusion) 기법을 사용해 스레드나 프로세스가 임계구역에 접근할 때 다른 스레드나 프로세스가 접근하지 못하도록 제어합니다. 대표적으로 세마포어(Semaphore)나 뮤텍스(Mutex) 등이 사용됩니다. 2. 세마포어와 뮤텍스란 세마포어는 공유 자원에 대한 접근 제어를 위한 동기화 .. 2023. 3. 17. CS스터디 1주차 - 프로세스 어제 1주 차 cs스터디를 진행하면서 느낀 점 - 진행방식: 대(大)주제 안에 소(小)주제 5개 정도 있고, 무작위로 선정하여 하나씩 소수제에 대해 면접자가 되어서 질문에 답변 - 너무 빡세다.. 많았던 꼬리질문을 블로그에 담지 못했다.. - 꼬리질문이 너무 딥하게 들어간다 - 철저한 개념 이해부터 다른 개념과의 연관성, 차이점까지 꼬리질문이 들어오니 준비를 더 잘해야겠다 - 그래도 서로 잘 못대답하는 부분이 있으면 질문 후 서로 아는 것 공유하면서 더 공부가 된다 1. 프로세스와 스레드 - 프로세스와 프로그램의 차이점 프로그램은 실행 가능한 코드와 정적 데이터의 집합체이며, 디스크 상에 존재합니다. 반면, 프로세스는 실행 중인 프로그램으로, 프로그램이 메모리에 적재되어 실행되는 상태를 말합니다. 즉, .. 2023. 3. 16. 프로세스 vs 스레드 차이 0. 용어 정리 실행단위: cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포함하는 개념 프로세스: 하나의 스레드만 가지고 있는 단일 스레드 프로세스 동시성: 한 순간에여러 가지일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것 1. Process & Thread [프로그램과 프로세스 차이] 프로그램: 치킨 레시피, 코드가 구현되어 있는 파일 프로세스: 치킨, 코드가 운영되는 서비스 상태 -> 프로그램이 프로세스가 됨 [프로그램이 프로세스가 되는 과정 짤] [스레드가 나온 이유] 예를 들어 컴퓨터 코딩할 때 노래, vscode, 슬랙, 카카오톡을 사용함 대부분의 사람이 하나의 프로세스만 사용하기보다는 여러 가지 동시에 사용을 원함 원래 한 프로세스가 사용하기 위해 .. 2023. 3. 15. 운영체제(11/11) - Disk Management & Scheduling 1, 2 disk structure - logical block 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 - sector logical block이 물리적인 디스크에 매핑된 위치 sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터 Dist Management - Physical formatting: 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정 - Partitioning: 디스크를 하나 이상의 실린더 그룹으로 나누는 과정 - Logical formatting: 파일 시스템을 만드는 것 - Booting: ROM에 있는 'small bootstrap loader'의 실행 Dist scheduling - access time seek time.. 2023. 2. 4. 운영체제(10/11) - File Systems file - 운영체제는 다양한 저장 장치를 file이라는 논리적 단위로 나눔 - 일반적으로 비휘발성의 보조기억장치에 저장 - 연산: create, read, write, reposition, delete, open, close 등 file system - 운영체제에서 파일 관리하는 부분 - 파일 및 파일의 메타데이터, 디렉토리 정보 등을 관리 Directory - 파일의 메타데이터 중 일부를 보관하고 있는 특별한 파일 file protection - 각 파일에 대해 누구에게 어떤 유형의 접근을 허락할 것인가 고민 - access control 방법(3가지) - 일반적으로는 grouping을 사용 access methods - 시스템이 제공하는 파일 정보의 접근 방식 - 순차 접근: 카세트 테이프를 사용하.. 2023. 2. 3. 운영체제(9/11) - Virtual Memory 1,2 demand paging - 실제로 필요할 때 메모리에 올리는 것 - 대부분의 경우에서 page fault는 잘 안남 빈페이지가 없는 경우 - page replacement: 어떤 frame을 빼앗아올지 결정해야함 - replace algorithm을 사용함: page-fault rate를 최소화하는 것이 목표 optimal algorithm - 미래의 가능성을 미리 안다는 가정에서 알고리즘(그래서 현실성이 떨어짐) LRU(least recently used) 알고리즘 - 가장 오래 전에 참조된 것을 지움 - 예시) 가장 최근에 도둑질을 한 사람이 도둑질을 할 것이라고 생각함 - 줄을 세워 하나씩 일일이 비교, 운영체제가 수행 - paging system에서 사용 못함 FIFO 알고리즘 - 먼저 들어온 .. 2023. 2. 2. 운영체제(8/11) - Memory Management 1~4 종류 logical address: 프로세스마다 독립적 주소 공간 physical address: 메모리에 실제 올려지는 위치 주소 바인딩 compile time binding: 절대 코드 생성 load time binding : 물리적 주소 부여, 재배치 가능 코드 run time binding: 수행 시작 후 주소 변경 가능 , 하드웨어 지원 필요 메모리 관련 용어 설명 - dynamic loading: 해당 루틴이 필요할 때 메모리에 load하는 것 오류 처리 루틴에 유용 - overlays: 메모리에 프로세스 부분 중 필요한 정보만을 올림 -swapping: 프로세스를 일시적으로 메모리에서 backing store로 쫒아내는 것 - dynamic linking: linking을 실행시간까지 미루는.. 2023. 2. 1. 운영체제(7/11) - Deadlock 1,2 Deadlock - 교착상태 - 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 데드락 발생의 조건 (4가지) - mutual exclusion: 상호배제, 매 순간 하나의 프로세스만이 자원을 사용 가능 - no preemption: 비선점, 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않음 - hold and wait: 보유 대기, 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 가지고 있음 - circular wait: 자원을 기다리는 프로세스 간에 사이클이 형성되어야 함 데드락 처리 방법 - Deadlock prevention(방지): 4가지 발생 조건을 차단 - Deadlock avoidance(방지): 데드락으로부터 안전한지 동적으로 조사 후.. 2023. 1. 31. 이전 1 2 3 4 5 6 7 8 다음