강파랑
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (38)
      • CS (27)
        • Linux (3)
        • OS 수업 (9)
        • Network (3)
        • 네트워크 수업 (10)
        • DB (1)
      • Privacy (폐기) (0)
        • 목표 (폐기) (0)
        • 하루의 기록 (폐기) (0)
      • Language (2)
        • Kotlin (2)
      • 기타 (1)
  • 홈
  • 태그
  • 방명록
CS/OS 수업

운영체제 14주차(파일-디스크)

파일 서로 관련되어 있는 정보의 집합체 사용자의 관점에서는 파일은 논리적으로 저장되는 단위 운영체제는 논리적인 저장 단위를 디스크와 같은 물리적인 저장장치에 맵핑하여 저장 파일 시스템 운영체제의 기능으로서1) 사용자에게 파일 관리 기능 제공(파일과 디렉토리의 생성/삭제, 파일에 대한 조작, 공유, 보호 2) 파일을 저장장치에 저장한다. 응용분야 또는 저장장치의 특성에(e.g. 동영상 ..etc) 따라서 다양한 파일 시스템이 개발됨 FAT, NTFS(윈도우 제공), ext2, ext3, JFS, NFS, YAFFS 사용자가 파일 시스템을 선택해서 사용할 수 있음. 파일 시스템의 기능 파일 관리: 파일 생성, 참조, 삭제 및 보호 기능을 제공하며 적절한 제어방식을 통해 다른 사람의 파일을 공유할 수 있게 함..

2021. 6. 1. 01:42
CS/OS 수업

운영체제 10주차 - Deadlock

교착상태(Deadlock)란? 여러 프로세스들이 각자 자원(CPU, 메모리, IO장치, 파일, 세마포어 등)을 점유하고 있으면서 다른 프로세스가 점유하고 있는 자원을 요청하면서 무한히 대기하는 상태 e.g. 1: 시스템에 두 개의 테이프 드라이브가 있을 때, 프로세스 P1과 P2가 하나씩 테이프 드라이브를 사용하면서 상대방 프로세스의 테이프 드라이브를 필요로 함. e.g. 2: 두 개의 세마포어 A와 BP0 P1wait(B) wait(A) wait(A) wait(B) 각 자원은 여러 개의 사례(Instance)를 가질 수 있다(e.g. 시스템에 두 개의 CPU가 있다면 CPU 자원 유형은 두 개의 instance를 가짐) 프로스세가 자원을 사용하려면 다음 순서로 수행한다. 요청(request): 요청이 ..

2021. 5. 4. 01:05
CS/OS 수업

운영체제 9주차 (프로세스 동기화 개념, 임계 구역)

프로세스 동기화 (Synchronization)병행 프로세스(동시에 실행되는 프로세스)들이 서로 데이터를 주고 받으면서 수행될 때, 이 프로세스들 간의 동기화가 필요함.e.g. producer vs consumer problem두 개의 프로세스가 공유 메모리(버퍼)를 사용하여 데이터를 공유함.생산자 프로세스는 공유 메모리에 데이터를 생산소비자 프로세스는 공유 메모리의 데이터를 소비// 생산자 프로세스 while(1) { // produce an item and put in nextProduced. while(counter == BUFFER_SIZE/*100*/) { // counter 값이 100이면 cannot produce // do nothing } buffer[in] = nextProduced; ..

2021. 4. 27. 01:14
CS/OS 수업

운영체제 8주차

Starvation: 낮은 우선순위를 가진 프로세스가 계속 실행되지 못함 → why? 우선 순위가 낮기 때문에 계속 대기 상태로 있었는데, ready queue에 우선 순위가 높은 프로스스가 계속 들어오면 starvation이 된다. 그래서 오랫동안 준비 큐에 대기하는 프로세스를 우선 순위를 점차적으로 증가시킨다.(Aging) 라운드 로빈(Round Robin, RR) 스케줄링 시분할(time sharing) 시스템을 위해 만들어졌다. 각 프로세스는 시간량(또는 시간 할당량, time slice, time quantum ← 이 용어도 알아둘 것) 동안 CPU를 할당받는다(보통 10~100 ms). 이 시간이 지나면 프로세스는 CPU를 빼았기고 Ready Queue에 들어간다. Ready Queue는 선입..

2021. 4. 20. 13:34
CS/OS 수업

운영체제 7주차

입출력 요청이나 자식 프로세스가 종료되기를 기다림 → 시스템 콜을 호출해서 운영체제가 호출되고 운영체제는 실행상태인 프로세스를 대기 상태(waiting)로 전환. 프로세스가 대기 상태로 바뀌었으므로 운영체제는 스케줄링 결정 실행 상태(running)에서 준비 상태(ready) 상태로 전환될 때(인터럽트 발생) → e.g. 타이머나 입출력 장치에서 입출력이 종료되었을 때 → 인터럽트가 발생했으므로 운영체제가 개입하고 운영체제는 실행 중인 프로세스를 무조건 ready로 바꾸고 새로운 프로세스를 선택(스케줄링 결정) 대기 상태(waiting)에서 준비 상태(ready)로 전환될 때 → 입출력 OR 어떤 이벤트가 종료(e.g. 자식 프로세가 종료됐다 ⇒ exit 시스템 콜) → 인터럽트 → 운영체제 개입 → 운..

2021. 4. 14. 22:44
CS/OS 수업

운영체제 6주차

Pthread는 스레드 관리에 관련된 POSIX(UNIX 계열 라이브러리 표준) 표준 라이브러리 API이다(참고) pthread_t(int): 스레드 id pthread_attr_t(struct): 스레드 속성 정보 저장 구조체 pthread_attr_init(&attr): attr 값 초기화(라이브러리 함수) pthread_create(&tid, &attr, run, (void*)count): 스레드 번호 부여, 스레드 구조체에 스레드 정보 저장(거의 사용할 일 없음), 스레드를 실행할 함수, 함수에 전달할 매개변수 C에서는 개발자가 스레드 함수를 명시적으로 실행하지 않더라도 pthread_create(&tid, &attr, run, (void*)count)함수 실행이 완료되면 스레드가 만들어져서 자동..

2021. 4. 5. 02:40
CS/OS 수업

운영체제 4주차

프로세스실행 중인 프로그램프로그램을 실행시키면, OS는 디스크에 있는 프로그램 파일을 찾아서 메모리에 적재(load)하고 프로세스를 만듬3. 실행파일(컴파일하면 생기는 프로그램)의 구조헤더(header): 파일 내 정보를 가짐(코드 섹션, 데이터 섹션 크기 등)코드 섹션: 함수 내의 기계어 코드로 바뀌어서 저장데이터 섹션: 전역 변수들을 저장4. 프로세스 구성 요소코드(code)데이터(data): 전역 변수들을 저장스택(stack): 지역 변수 및 함수의 매개변수를 저장힙(heap): 동적 메모리 할당 영역CPU 레지스터(CPU마다 레지스터 명이 다를 수도 있음)PC: 프로그램 다음에 실행할 명령어 주소 값을 가짐CS(Code Segment): 프로그램을 실행하면, 운영체제가 메모리에 프로세스를 생성하는..

2021. 3. 22. 02:18
CS/OS 수업

운영체제 2주차

프로세서(Processor)중앙처리장치(Cetral Processing Unit)라고 함전원이 켜지면, 메모리의 첫 부분(0번지) 또는 끝부분(0xffffff) 내용을 읽어 실행함.프로세서의 기본구조Control Unit명령어(기계어, mov, add, jmp ...)를 해석하는 명령어 해석기(instruction decoder), 제어 로직으로 구성됨명령어를 읽고 실행을 위한 로직을 수행ALU(Arithmetic & Login Unit)산술 연산: 덧셈, 뺄셈, 곱셈, 쉬프트 연산 등을 수행논리 연산: 논리 AND, OR, XOR, NOT, 보수 연산 등을 수행연산 처리 후의 상태(overflow, nagative, positive 등등)를 상태 레지스터에 저장함레지스터(Register): 프로세서 내..

2021. 3. 15. 08:34
CS/OS 수업

운영체제 3주차

컴퓨터 시스템의 메모리는 ROM과 RAM으로 구성되며, 일반적으로 메모리의 첫 부분에는 ROM, 뒷 부분에는 RAM이 위치함.ROM의 시작 위치에는 부트로더 프로그램이 저장되어 있음. ROM은 비휘발성 저장장치이므로 전원이 꺼져도 ROM에는 데이터가 남아있다. 즉, 부트로더라는 프로그램은 전원이 꺼져도 데이터가 살아있다.전원이 켜지면 CPU는 메모리 첫 부분의 내용을 읽어 수행하게 되는데, 부트로더를 수행하게 됨.전원이 켜지면 PC 레지스터 값이 0으로 초기화 됨. → 메모리의 0번지의 내용을 읽어서 IR 레지스터가 명령 실행. 그런데 0번지 부근에는 뭐가 있다? 부트로더가 있다. 즉, 부트로더가 실행됨전원이 켜지면 CPU 모드는 커널 모드로 초기화 됨. (상태 레지스터의 모드 비트가 0으로 초기화 됨)..

2021. 3. 15. 02:10
  • «
  • 1
  • »

공지사항

전체 카테고리

  • 분류 전체보기 (38)
    • CS (27)
      • Linux (3)
      • OS 수업 (9)
      • Network (3)
      • 네트워크 수업 (10)
      • DB (1)
    • Privacy (폐기) (0)
      • 목표 (폐기) (0)
      • 하루의 기록 (폐기) (0)
    • Language (2)
      • Kotlin (2)
    • 기타 (1)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #Kernel은 항상 Memory Resident해야 한다.
  • #RAID01
  • #연속할당
  • #Kernel
  • #PCB
  • #페이징
  • #커널
  • #어른 #세네카
  • #sci #ec2 파일업로그 #aws
  • #다단계 피드백 큐
  • #Just Do It.
  • #kotlin
  • #연결할당
  • #yiaddr
  • #raid
  • #번 아웃 방지 프로세스
  • #페이징 매핑
  • #파일 디스크
  • #색인할당
  • #DNS 동작과정
  • #paging
  • #RAID란?
  • #목표
  • #커널 스레드
  • #naked domain
  • #WealthThinking
  • #incann
  • #NAT Translation Table
  • #zone apex
  • #DNX
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © 강파랑 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바